<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Logback Log Messages</title>
<style  type="text/css">
table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }
TR.even { background: #FFFFFF; }
TR.odd { background: #EAEAEA; }
TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }
TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }
TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }
TD.Thread { text-align: left; }
TD.Level { text-align: right; }
TD.Logger { text-align: left; }
TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }
TD.Exception { background: #A2AEE8; font-family: courier, monospace;}
</style>

  </head>
<body>
<hr/>
<p>Log session start time Sat Aug 16 10:11:09 CST 2025</p><p></p>

<table cellspacing="0">
<tr class="header">
<td class="Level">Level</td>
<td class="Date">Date</td>
<td class="Message">Message</td>
<td class="MethodOfCaller">MethodOfCaller</td>
<td class="FileOfCaller">FileOfCaller</td>
<td class="LineOfCaller">LineOfCaller</td>
</tr>


<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:09,708</td>
<td class="Message">HV000001: Hibernate Validator 8.0.2.Final</td>
<td class="MethodOfCaller">&lt;clinit&gt;</td>
<td class="FileOfCaller">Version.java</td>
<td class="LineOfCaller">21</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:09,765</td>
<td class="Message">Starting JeecgSystemApplication using Java 17.0.15 with PID 5879 (/Users/mac/Desktop/project/jeecg/jeecg-boot/jeecg-module-system/jeecg-system-start/target/classes started by mac in /Users/mac/Desktop/project/jeecg/jeecg-boot)</td>
<td class="MethodOfCaller">logStarting</td>
<td class="FileOfCaller">StartupInfoLogger.java</td>
<td class="LineOfCaller">53</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:09,766</td>
<td class="Message">The following 1 profile is active: &quot;dev&quot;</td>
<td class="MethodOfCaller">logStartupProfileInfo</td>
<td class="FileOfCaller">SpringApplication.java</td>
<td class="LineOfCaller">658</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,566</td>
<td class="Message">Multiple Spring Data modules found, entering strict repository configuration mode</td>
<td class="MethodOfCaller">multipleStoresDetected</td>
<td class="FileOfCaller">RepositoryConfigurationDelegate.java</td>
<td class="LineOfCaller">295</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,569</td>
<td class="Message">Bootstrapping Spring Data Redis repositories in DEFAULT mode.</td>
<td class="MethodOfCaller">registerRepositoriesIn</td>
<td class="FileOfCaller">RepositoryConfigurationDelegate.java</td>
<td class="LineOfCaller">143</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,659</td>
<td class="Message">Finished Spring Data repository scanning in 78 ms. Found 0 Redis repository interfaces.</td>
<td class="MethodOfCaller">registerRepositoriesIn</td>
<td class="FileOfCaller">RepositoryConfigurationDelegate.java</td>
<td class="LineOfCaller">211</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,749</td>
<td class="Message"> ******************* init miniDao config [ begin ] *********************** </td>
<td class="MethodOfCaller">miniDaoBeanScannerConfigurer</td>
<td class="FileOfCaller">MinidaoAutoConfiguration.java</td>
<td class="LineOfCaller">23</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,749</td>
<td class="Message"> ------ minidao.base-package ------- org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*</td>
<td class="MethodOfCaller">miniDaoBeanScannerConfigurer</td>
<td class="FileOfCaller">MinidaoAutoConfiguration.java</td>
<td class="LineOfCaller">25</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,750</td>
<td class="Message"> *******************  init miniDao config  [ end ] *********************** </td>
<td class="MethodOfCaller">miniDaoBeanScannerConfigurer</td>
<td class="FileOfCaller">MinidaoAutoConfiguration.java</td>
<td class="LineOfCaller">42</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,894</td>
<td class="Message">Overriding bean definition for bean &#39;classifier&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.a; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/a.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,895</td>
<td class="Message">Overriding bean definition for bean &#39;end&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.b; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/b.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,896</td>
<td class="Message">Overriding bean definition for bean &#39;http&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.c; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/c.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,896</td>
<td class="Message">Overriding bean definition for bean &#39;knowledge&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.d; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/d.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,897</td>
<td class="Message">Overriding bean definition for bean &#39;llm&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.e; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/e.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,897</td>
<td class="Message">Overriding bean definition for bean &#39;enhanceJava&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.enhance.a; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/enhance/a.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,898</td>
<td class="Message">Overriding bean definition for bean &#39;reply&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.f; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/f.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,898</td>
<td class="Message">Overriding bean definition for bean &#39;start&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.g; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/g.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,899</td>
<td class="Message">Overriding bean definition for bean &#39;subflow&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.h; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/h.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:11,899</td>
<td class="Message">Overriding bean definition for bean &#39;switch&#39; with a different definition: replacing [Generic bean: class=org.jeecg.modules.airag.flow.component.i; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in URL [jar:file:/Users/mac/.m2/repository/org/jeecgframework/boot3/jeecg-aiflow/1.1.1/jeecg-aiflow-1.1.1.jar!/org/jeecg/modules/airag/flow/component/i.class]] with [Generic bean: class=com.yomahub.liteflow.core.proxy.DeclWarpBean; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null]</td>
<td class="MethodOfCaller">logBeanDefinitionOverriding</td>
<td class="FileOfCaller">DefaultListableBeanFactory.java</td>
<td class="LineOfCaller">1333</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,145</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportCategoryDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDataSourceDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictItemDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportExportJobDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportExportLogDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportLinkDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportMapDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,146</td>
<td class="Message">register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportShareDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.JimuDragCategoryDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.JimuDragMapDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.JimuReportIconLibDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragCompDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragDataSourceDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragDatasetHeadDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragDatasetItemDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragDatasetParamDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragPageCompDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragPageDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,147</td>
<td class="Message">register minidao name is { org.jeecg.modules.drag.dao.OnlDragShareDao }</td>
<td class="MethodOfCaller">doScan</td>
<td class="FileOfCaller">MiniDaoClassPathMapperScanner.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:11:12,150</td>
<td class="Message">Cannot enhance @Configuration bean definition &#39;com.yomahub.liteflow.springboot.config.LiteflowMainAutoConfiguration&#39; since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as &#39;static&#39; and/or marking the containing configuration class as &#39;proxyBeanMethods=false&#39;.</td>
<td class="MethodOfCaller">enhanceConfigurationClasses</td>
<td class="FileOfCaller">ConfigurationClassPostProcessor.java</td>
<td class="LineOfCaller">514</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,642</td>
<td class="Message">===============(1)创建缓存管理器RedisCacheManager</td>
<td class="MethodOfCaller">redisCacheManager</td>
<td class="FileOfCaller">ShiroConfig.java</td>
<td class="LineOfCaller">295</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:12,643</td>
<td class="Message">===============(2)创建RedisManager,连接Redis..</td>
<td class="MethodOfCaller">redisManager</td>
<td class="FileOfCaller">ShiroConfig.java</td>
<td class="LineOfCaller">316</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:13,147</td>
<td class="Message">Initializing Spring embedded WebApplicationContext</td>
<td class="MethodOfCaller">log</td>
<td class="FileOfCaller">ServletContextImpl.java</td>
<td class="LineOfCaller">372</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:13,148</td>
<td class="Message">Root WebApplicationContext: initialization completed in 3125 ms</td>
<td class="MethodOfCaller">prepareWebApplicationContext</td>
<td class="FileOfCaller">ServletWebServerApplicationContext.java</td>
<td class="LineOfCaller">301</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:13,883</td>
<td class="Message">{dataSource-1,master} inited</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DruidDataSource.java</td>
<td class="LineOfCaller">673</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:13,884</td>
<td class="Message">dynamic-datasource - add a datasource named [master] success</td>
<td class="MethodOfCaller">addDataSource</td>
<td class="FileOfCaller">DynamicRoutingDataSource.java</td>
<td class="LineOfCaller">154</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:13,884</td>
<td class="Message">dynamic-datasource initial loaded [1] datasource,primary datasource named [master]</td>
<td class="MethodOfCaller">afterPropertiesSet</td>
<td class="FileOfCaller">DynamicRoutingDataSource.java</td>
<td class="LineOfCaller">237</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:13,931</td>
<td class="Message">当前数据库类型: MYSQL</td>
<td class="MethodOfCaller">mybatisPlusInterceptor</td>
<td class="FileOfCaller">MybatisPlusSaasConfig.java</td>
<td class="LineOfCaller">138</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:14,972</td>
<td class="Message"> --- redis config init --- </td>
<td class="MethodOfCaller">redisTemplate</td>
<td class="FileOfCaller">RedisConfig.java</td>
<td class="LineOfCaller">56</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,294</td>
<td class="Message">Using default implementation for ThreadExecutor</td>
<td class="MethodOfCaller">instantiate</td>
<td class="FileOfCaller">StdSchedulerFactory.java</td>
<td class="LineOfCaller">1220</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,296</td>
<td class="Message">Job execution threads will use class loader of thread: main</td>
<td class="MethodOfCaller">initialize</td>
<td class="FileOfCaller">SimpleThreadPool.java</td>
<td class="LineOfCaller">268</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,304</td>
<td class="Message">Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl</td>
<td class="MethodOfCaller">&lt;init&gt;</td>
<td class="FileOfCaller">SchedulerSignalerImpl.java</td>
<td class="LineOfCaller">61</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,304</td>
<td class="Message">Quartz Scheduler v.2.3.2 created.</td>
<td class="MethodOfCaller">&lt;init&gt;</td>
<td class="FileOfCaller">QuartzScheduler.java</td>
<td class="LineOfCaller">229</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,306</td>
<td class="Message">Using db table-based data access locking (synchronization).</td>
<td class="MethodOfCaller">initialize</td>
<td class="FileOfCaller">JobStoreSupport.java</td>
<td class="LineOfCaller">672</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,308</td>
<td class="Message">JobStoreCMT initialized.</td>
<td class="MethodOfCaller">initialize</td>
<td class="FileOfCaller">JobStoreCMT.java</td>
<td class="LineOfCaller">145</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,309</td>
<td class="Message">Scheduler meta-data: Quartz Scheduler (v2.3.2) &#39;MyScheduler&#39; with instanceId &#39;192.168.1.1121755310276295&#39;
  Scheduler class: &#39;org.quartz.core.QuartzScheduler&#39; - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool &#39;org.quartz.simpl.SimpleThreadPool&#39; - with 10 threads.
  Using job-store &#39;org.springframework.scheduling.quartz.LocalDataSourceJobStore&#39; - which supports persistence. and is clustered.
</td>
<td class="MethodOfCaller">initialize</td>
<td class="FileOfCaller">QuartzScheduler.java</td>
<td class="LineOfCaller">294</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,309</td>
<td class="Message">Quartz scheduler &#39;MyScheduler&#39; initialized from an externally provided properties instance.</td>
<td class="MethodOfCaller">instantiate</td>
<td class="FileOfCaller">StdSchedulerFactory.java</td>
<td class="LineOfCaller">1374</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,309</td>
<td class="Message">Quartz scheduler version: 2.3.2</td>
<td class="MethodOfCaller">instantiate</td>
<td class="FileOfCaller">StdSchedulerFactory.java</td>
<td class="LineOfCaller">1378</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:16,309</td>
<td class="Message">JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@3ad32e52</td>
<td class="MethodOfCaller">setJobFactory</td>
<td class="FileOfCaller">QuartzScheduler.java</td>
<td class="LineOfCaller">2293</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,750</td>
<td class="Message">component aspect implement[nodeProcessAspect] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">CmpAroundAspectBeanProcess.java</td>
<td class="LineOfCaller">32</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,917</td>
<td class="Message">proxy component[classifier] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,925</td>
<td class="Message">proxy component[end] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,932</td>
<td class="Message">proxy component[http] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,940</td>
<td class="Message">proxy component[knowledge] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,948</td>
<td class="Message">proxy component[llm] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,955</td>
<td class="Message">proxy component[enhanceJava] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,963</td>
<td class="Message">proxy component[reply] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,968</td>
<td class="Message">proxy component[start] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,973</td>
<td class="Message">proxy component[subflow] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:17,980</td>
<td class="Message">proxy component[switch] has been found</td>
<td class="MethodOfCaller">postProcessAfterInitialization</td>
<td class="FileOfCaller">DeclWarpBeanProcess.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:19,094</td>
<td class="Message">Init Token ignoreAuthUrls Config [ 集合 ]  ：[/airag/chat/send, /airag/chat/init, /airag/chat/conversations, /airag/chat/conversation/*, /airag/chat/conversation/update/title, /airag/chat/messages, /airag/chat/messages/clear/*, /airag/chat/upload, /airag/chat/stop/*, /test/jeecgDemo/html, /airag/flow/run, /airag/flow/run/*, /airag/app/queryById, /openapi/demo/index]</td>
<td class="MethodOfCaller">afterPropertiesSet</td>
<td class="FileOfCaller">IgnoreAuthPostProcessor.java</td>
<td class="LineOfCaller">41</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:19,095</td>
<td class="Message">Init Token ignoreAuthUrls Config [ 耗时 ] ：5毫秒</td>
<td class="MethodOfCaller">afterPropertiesSet</td>
<td class="FileOfCaller">IgnoreAuthPostProcessor.java</td>
<td class="LineOfCaller">49</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:19,104</td>
<td class="Message"> Init CodeGenerate Config [ Get Db Config From application.yml ] </td>
<td class="MethodOfCaller">initCodeGenerateDbConfig</td>
<td class="FileOfCaller">CodeGenerateDbConfig.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:19,663</td>
<td class="Message">Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7577b641</td>
<td class="MethodOfCaller">setApplicationContext</td>
<td class="FileOfCaller">MybatisPlusApplicationContextAware.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,288</td>
<td class="Message">Exposing 3 endpoints beneath base path &#39;/actuator&#39;</td>
<td class="MethodOfCaller">&lt;init&gt;</td>
<td class="FileOfCaller">EndpointLinksResolver.java</td>
<td class="LineOfCaller">60</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,395</td>
<td class="Message">UT026003: Adding annotated server endpoint class org.jeecg.modules.message.websocket.WebSocket for path /websocket/{userId}</td>
<td class="MethodOfCaller">addEndpointInternal</td>
<td class="FileOfCaller">ServerWebSocketContainer.java</td>
<td class="LineOfCaller">647</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,400</td>
<td class="Message">UT026003: Adding annotated server endpoint class org.jeecg.modules.drag.config.websocket.DragChannelWebSocket for path /dragChannelSocket/{token}</td>
<td class="MethodOfCaller">addEndpointInternal</td>
<td class="FileOfCaller">ServerWebSocketContainer.java</td>
<td class="LineOfCaller">647</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,400</td>
<td class="Message">UT026003: Adding annotated server endpoint class org.jeecg.modules.drag.config.websocket.DragWebSocket for path /websocket/drag/{chartId}</td>
<td class="MethodOfCaller">addEndpointInternal</td>
<td class="FileOfCaller">ServerWebSocketContainer.java</td>
<td class="LineOfCaller">647</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,401</td>
<td class="Message">UT026003: Adding annotated server endpoint class org.jeecg.modules.demo.mock.vxe.websocket.VxeSocket for path /vxeSocket/{userId}/{pageId}</td>
<td class="MethodOfCaller">addEndpointInternal</td>
<td class="FileOfCaller">ServerWebSocketContainer.java</td>
<td class="LineOfCaller">647</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,428</td>
<td class="Message">flow info loaded from class config with el,class=com.yomahub.liteflow.parser.sql.SQLXmlELParser</td>
<td class="MethodOfCaller">info</td>
<td class="FileOfCaller">LFLog.java</td>
<td class="LineOfCaller">193</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,448</td>
<td class="Message">query sql: select id, application_name, chain from airag_flow where status = &#39;enable&#39; and chain is not null</td>
<td class="MethodOfCaller">info</td>
<td class="FileOfCaller">LFLog.java</td>
<td class="LineOfCaller">186</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,478</td>
<td class="Message">use dataSourceName[dataSource],has found liteflow config</td>
<td class="MethodOfCaller">getConn</td>
<td class="FileOfCaller">LiteFlowJdbcUtil.java</td>
<td class="LineOfCaller">43</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,756</td>
<td class="Message">starting server: Undertow - 2.3.18.Final</td>
<td class="MethodOfCaller">start</td>
<td class="FileOfCaller">Undertow.java</td>
<td class="LineOfCaller">120</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,763</td>
<td class="Message">XNIO version 3.8.16.Final</td>
<td class="MethodOfCaller">&lt;clinit&gt;</td>
<td class="FileOfCaller">Xnio.java</td>
<td class="LineOfCaller">95</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,769</td>
<td class="Message">XNIO NIO Implementation Version 3.8.16.Final</td>
<td class="MethodOfCaller">&lt;clinit&gt;</td>
<td class="FileOfCaller">NioXnio.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,788</td>
<td class="Message">JBoss Threads version 3.5.0.Final</td>
<td class="MethodOfCaller">&lt;clinit&gt;</td>
<td class="FileOfCaller">Version.java</td>
<td class="LineOfCaller">55</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:20,820</td>
<td class="Message">Undertow started on port 8080 (http) with context path &#39;/jeecg-boot&#39;</td>
<td class="MethodOfCaller">start</td>
<td class="FileOfCaller">UndertowWebServer.java</td>
<td class="LineOfCaller">121</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:21,109</td>
<td class="Message">Will start Quartz Scheduler [MyScheduler] in 1 seconds</td>
<td class="MethodOfCaller">startScheduler</td>
<td class="FileOfCaller">SchedulerFactoryBean.java</td>
<td class="LineOfCaller">735</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:21,169</td>
<td class="Message">Started JeecgSystemApplication in 11.876 seconds (process running for 12.486)</td>
<td class="MethodOfCaller">logStarted</td>
<td class="FileOfCaller">StartupInfoLogger.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:21,181</td>
<td class="Message"> Init Code Generate Template [ 检测如果是JAR启动，Copy模板到config目录 ] </td>
<td class="MethodOfCaller">onApplicationEvent</td>
<td class="FileOfCaller">CodeTemplateInitListener.java</td>
<td class="LineOfCaller">30</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:21,198</td>
<td class="Message"> Init Code Generate Template completed in 17 ms</td>
<td class="MethodOfCaller">onApplicationEvent</td>
<td class="FileOfCaller">CodeTemplateInitListener.java</td>
<td class="LineOfCaller">33</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:11:21,199</td>
<td class="Message">A MeterFilter is being configured after a Meter has been registered to this registry. All MeterFilters should be configured before any Meters are registered. If that is not possible or you have a use case where it should be allowed, let the Micrometer maintainers know at https://github.com/micrometer-metrics/micrometer/issues/4920. Enable DEBUG level logging on this logger to see a stack trace of the call configuring this MeterFilter.</td>
<td class="MethodOfCaller">logWarningAboutLateFilter</td>
<td class="FileOfCaller">MeterRegistry.java</td>
<td class="LineOfCaller">881</td>
</tr>

<tr class="warn even">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:11:21,200</td>
<td class="Message">A MeterFilter is being configured after a Meter has been registered to this registry. All MeterFilters should be configured before any Meters are registered. If that is not possible or you have a use case where it should be allowed, let the Micrometer maintainers know at https://github.com/micrometer-metrics/micrometer/issues/4920. Enable DEBUG level logging on this logger to see a stack trace of the call configuring this MeterFilter.</td>
<td class="MethodOfCaller">logWarningAboutLateFilter</td>
<td class="FileOfCaller">MeterRegistry.java</td>
<td class="LineOfCaller">881</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:11:21,200</td>
<td class="Message">A MeterFilter is being configured after a Meter has been registered to this registry. All MeterFilters should be configured before any Meters are registered. If that is not possible or you have a use case where it should be allowed, let the Micrometer maintainers know at https://github.com/micrometer-metrics/micrometer/issues/4920. Enable DEBUG level logging on this logger to see a stack trace of the call configuring this MeterFilter.</td>
<td class="MethodOfCaller">logWarningAboutLateFilter</td>
<td class="FileOfCaller">MeterRegistry.java</td>
<td class="LineOfCaller">881</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:21,219</td>
<td class="Message">
----------------------------------------------------------
	Application Jeecg-Boot is running! Access URLs:
	Local: 		http://localhost:8080/jeecg-boot
	External: 	http://192.168.1.112:8080/jeecg-boot/doc.html
	Swagger文档: 	http://192.168.1.112:8080/jeecg-boot/doc.html
----------------------------------------------------------</td>
<td class="MethodOfCaller">main</td>
<td class="FileOfCaller">JeecgSystemApplication.java</td>
<td class="LineOfCaller">47</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:22,113</td>
<td class="Message">Starting Quartz Scheduler now, after delay of 1 seconds</td>
<td class="MethodOfCaller">lambda$startScheduler$0</td>
<td class="FileOfCaller">SchedulerFactoryBean.java</td>
<td class="LineOfCaller">749</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:22,155</td>
<td class="Message">ClusterManager: detected 1 failed or restarted instances.</td>
<td class="MethodOfCaller">logWarnIfNonZero</td>
<td class="FileOfCaller">JobStoreSupport.java</td>
<td class="LineOfCaller">3644</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:22,155</td>
<td class="Message">ClusterManager: Scanning for instance &quot;192.168.1.1121755234529150&quot;&#39;s failed in-progress jobs.</td>
<td class="MethodOfCaller">clusterRecover</td>
<td class="FileOfCaller">JobStoreSupport.java</td>
<td class="LineOfCaller">3503</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:22,165</td>
<td class="Message">Scheduler MyScheduler_$_192.168.1.1121755310276295 started.</td>
<td class="MethodOfCaller">start</td>
<td class="FileOfCaller">QuartzScheduler.java</td>
<td class="LineOfCaller">547</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:57,956</td>
<td class="Message">Initializing Spring DispatcherServlet &#39;dispatcherServlet&#39;</td>
<td class="MethodOfCaller">log</td>
<td class="FileOfCaller">ServletContextImpl.java</td>
<td class="LineOfCaller">372</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:57,958</td>
<td class="Message">Initializing Servlet &#39;dispatcherServlet&#39;</td>
<td class="MethodOfCaller">initServletBean</td>
<td class="FileOfCaller">FrameworkServlet.java</td>
<td class="LineOfCaller">532</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:57,960</td>
<td class="Message">Completed initialization in 2 ms</td>
<td class="MethodOfCaller">initServletBean</td>
<td class="FileOfCaller">FrameworkServlet.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:11:58,202</td>
<td class="Message">加密操作，Aspect程序耗时：16ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:12:00,878</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:12:00,904</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)32毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:12:00,917</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)46毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,505</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,562</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,574</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,585</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,586</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,586</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,590</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,603</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_flow where status = &#39;enable&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,605</td>
<td class="Message">获取select sql信息 ：{airag_flow=SelectSqlInfo{fromTableName=&#39;airag_flow&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,612</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,613</td>
<td class="Message">checkWhiteList tableName: airag_flow</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,614</td>
<td class="Message">白名单校验：查询表&quot;airag_flow&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,614</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_flow&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,620</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_model where model_type = &#39;LLM&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,621</td>
<td class="Message">获取select sql信息 ：{airag_model=SelectSqlInfo{fromTableName=&#39;airag_model&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,627</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,628</td>
<td class="Message">checkWhiteList tableName: airag_model</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,628</td>
<td class="Message">白名单校验：查询表&quot;airag_model&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:24,628</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_model&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:13:33,700</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,067</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,085</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,087</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,090</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,091</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,091</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,092</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,482</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,492</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:18,502</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)20毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:24,896</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:25,018</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:25,029</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:19:25,037</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:13,774</td>
<td class="Message">获取验证码，Redis key = 31c304175ad6e544df43f31754aa011ekith，checkCode = kitH</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,310</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,350</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）4毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,364</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)17毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,364</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,377</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：12毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,408</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：44毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,408</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：44毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,408</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,408</td>
<td class="Message">3 获取用户信息耗时 (字典数据)62毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:30,408</td>
<td class="Message">end 获取用户信息耗时 62毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:32,349</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:32,834</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:32,847</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:32,859</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)26毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:50,717</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:50,726</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)9毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:20:50,732</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:06,400</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:12,252</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 10:21:20,366</td>
<td class="Message">No static resource drag/lib/img/bg1.png.</td>
<td class="MethodOfCaller">handleException</td>
<td class="FileOfCaller">JeecgBootExceptionHandler.java</td>
<td class="LineOfCaller">124</td>
</tr>
<tr><td class="Exception" colspan="6">org.springframework.web.servlet.resource.NoResourceFoundException: No static resource drag/lib/img/bg1.png.
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:172)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:73)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.boot.actuate.web.exchanges.servlet.HttpExchangesFilter.doFilterInternal(HttpExchangesFilter.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:20,405</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:32,789</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:43,937</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:44,785</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:45,687</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:47,500</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,437</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,452</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_model where model_type = &#39;EMBED&#39;</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,453</td>
<td class="Message">获取select sql信息 ：{airag_model=SelectSqlInfo{fromTableName=&#39;airag_model&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,457</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,458</td>
<td class="Message">checkWhiteList tableName: airag_model</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,458</td>
<td class="Message">白名单校验：查询表&quot;airag_model&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:48,458</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_model&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:49,655</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:50,105</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:50,543</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:50,796</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,651</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,664</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_flow where status = &#39;enable&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,665</td>
<td class="Message">获取select sql信息 ：{airag_flow=SelectSqlInfo{fromTableName=&#39;airag_flow&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,669</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,669</td>
<td class="Message">checkWhiteList tableName: airag_flow</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,669</td>
<td class="Message">白名单校验：查询表&quot;airag_flow&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,669</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_flow&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,675</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_model where model_type = &#39;LLM&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,677</td>
<td class="Message">获取select sql信息 ：{airag_model=SelectSqlInfo{fromTableName=&#39;airag_model&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,680</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,681</td>
<td class="Message">checkWhiteList tableName: airag_model</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,681</td>
<td class="Message">白名单校验：查询表&quot;airag_model&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:51,681</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_model&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:21:53,155</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:22:19,627</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:22:41,602</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:23:52,630</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:23:52,639</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:23:52,639</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:23:52,639</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:23:52,639</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:11,376</td>
<td class="Message">第三方登录进入render：dingtalk</td>
<td class="MethodOfCaller">render</td>
<td class="FileOfCaller">ThirdLoginController.java</td>
<td class="LineOfCaller">83</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:11,396</td>
<td class="Message">第三方登录认证地址：https://oapi.dingtalk.com/connect/qrconnect?response_type=code&amp;appid=??&amp;scope=snsapi_login&amp;redirect_uri=http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/dingtalk/callback&amp;state=5a5409d3ccaf4fc712d6c1693a2e9944</td>
<td class="MethodOfCaller">render</td>
<td class="FileOfCaller">ThirdLoginController.java</td>
<td class="LineOfCaller">86</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:21,970</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1256627801873821698</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:21,971</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1256627801873821698]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,006</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[count(*), date_format(create_time, &#39;%y-%m-%d&#39;)], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,016</td>
<td class="Message">报表查询sql=&gt;
select * from (select DATE_FORMAT(create_time,  &#39;%Y-%m-%d&#39;) as date,count(*) as num from sys_log group by DATE_FORMAT(create_time, &#39;%Y-%m-%d&#39;)) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,017</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,116</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1256627801873821698</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,116</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1256627801873821698]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,137</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[count(*), date_format(create_time, &#39;%y-%m-%d&#39;)], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,144</td>
<td class="Message">报表查询sql=&gt;
select * from (select DATE_FORMAT(create_time,  &#39;%Y-%m-%d&#39;) as date,count(*) as num from sys_log group by DATE_FORMAT(create_time, &#39;%Y-%m-%d&#39;)) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:22,145</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,265</td>
<td class="Message">字典拼接的查询SQL：select role_name,role_code from sys_role</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,267</td>
<td class="Message">获取select sql信息 ：{sys_role=SelectSqlInfo{fromTableName=&#39;sys_role&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[role_name, role_code], realSelectFields=[role_name, role_code], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,270</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,270</td>
<td class="Message">checkWhiteList tableName: sys_role</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,270</td>
<td class="Message">白名单校验：查询表&quot;sys_role&quot;，查询字段 [role_name, role_code] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,270</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_role&#39;, alias=&#39;&#39;, fields=[role_name, role_code], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,273</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user where username like &#39;a%&#39;</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,275</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,278</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,279</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,279</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,279</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,316</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,316</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/loadDict/sys_role,role_name,role_code</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,317</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/loadDict/sys_user%20where%20username%20like%20&#39;a%25&#39;,realname,username</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,319</td>
<td class="Message"> pathVariable: sys_role,role_name,role_code</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">44</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,319</td>
<td class="Message"> pathVariable decode: sys_role,role_name,role_code</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">56</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,319</td>
<td class="Message"> pathVariable: sys_user%20where%20username%20like%20&#39;a%25&#39;,realname,username</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">44</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,319</td>
<td class="Message"> pathVariable decode: sys_user where username like &#39;a%&#39;,realname,username</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">56</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,320</td>
<td class="Message">Param paramsJsonStr : {&quot;keyword&quot;:&quot;&quot;,&quot;pageNo&quot;:&quot;1&quot;,&quot;pageSize&quot;:&quot;10&quot;,&quot;x-path-variable&quot;:&quot;sys_user where username like &#39;a%&#39;,realname,username&quot;}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,320</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,320</td>
<td class="Message">Param paramsJsonStr : {&quot;keyword&quot;:&quot;&quot;,&quot;pageNo&quot;:&quot;1&quot;,&quot;pageSize&quot;:&quot;10&quot;,&quot;x-path-variable&quot;:&quot;sys_role,role_name,role_code&quot;}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,324</td>
<td class="Message">Param Sign : 68A1FAA763F3656BC0170DAF169B396C</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,324</td>
<td class="Message">Param Sign : A94389BD884D94133E492535C3E5F982</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,324</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,325</td>
<td class="Message"> 加载字典表数据,加载关键字: </td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">228</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,325</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,325</td>
<td class="Message"> 加载字典表数据,加载关键字: </td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">228</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:28,326</td>
<td class="Message">URLDecoder: Illegal hex characters in escape (%) pattern - Error at index 0 in: &quot;&#39;,&quot;</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">103</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,326</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,326</td>
<td class="Message">字典拼接的查询SQL：select role_name,role_code from sys_role</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,328</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,329</td>
<td class="Message">获取select sql信息 ：{sys_role=SelectSqlInfo{fromTableName=&#39;sys_role&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[role_name, role_code], realSelectFields=[role_name, role_code], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,333</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,334</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,334</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,334</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,335</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,335</td>
<td class="Message">checkWhiteList tableName: sys_role</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,335</td>
<td class="Message">白名单校验：查询表&quot;sys_role&quot;，查询字段 [role_name, role_code] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,336</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_role&#39;, alias=&#39;&#39;, fields=[role_name, role_code], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,343</td>
<td class="Message">Result(success=true, message=, code=0, result=[DictModel(value=admin, text=管理员, color=null, jsonObject=null)], timestamp=1755311128326, onlTable=null)</td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">238</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,343</td>
<td class="Message">Result(success=true, message=, code=0, result=[DictModel(value=dbadeveloper, text=数据开发角色, color=null, jsonObject=null), DictModel(value=lowdeveloper, text=低代码开发角色, color=null, jsonObject=null), DictModel(value=vue3, text=Vue3全角色, color=null, jsonObject=null), DictModel(value=test, text=临时角色, color=null, jsonObject=null), DictModel(value=admin, text=管理员, color=null, jsonObject=null)], timestamp=1755311128326, onlTable=null)</td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">238</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,359</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,360</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,361</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,362</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,367</td>
<td class="Message"> path = /online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,368</td>
<td class="Message"> path = /online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,368</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,368</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,540</td>
<td class="Message"> path = /online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,540</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,581</td>
<td class="Message">suffix:jpg</td>
<td class="MethodOfCaller">checkDownloadFileType</td>
<td class="FileOfCaller">SsrfFileTypeFilter.java</td>
<td class="LineOfCaller">152</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:28,582</td>
<td class="Message">文件[temp/11_1654356229294.jpg]不存在..</td>
<td class="MethodOfCaller">view</td>
<td class="FileOfCaller">CommonController.java</td>
<td class="LineOfCaller">232</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,693</td>
<td class="Message">suffix:jpg</td>
<td class="MethodOfCaller">checkDownloadFileType</td>
<td class="FileOfCaller">SsrfFileTypeFilter.java</td>
<td class="LineOfCaller">152</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:28,693</td>
<td class="Message">文件[temp/11_1654356229294.jpg]不存在..</td>
<td class="MethodOfCaller">view</td>
<td class="FileOfCaller">CommonController.java</td>
<td class="LineOfCaller">232</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:28,827</td>
<td class="Message">suffix:jpg</td>
<td class="MethodOfCaller">checkDownloadFileType</td>
<td class="FileOfCaller">SsrfFileTypeFilter.java</td>
<td class="LineOfCaller">152</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:28,828</td>
<td class="Message">文件[temp/11_1654356229294.jpg]不存在..</td>
<td class="MethodOfCaller">view</td>
<td class="FileOfCaller">CommonController.java</td>
<td class="LineOfCaller">232</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,175</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/loadDict/sys_user%20where%20username%20like%20&#39;a%25&#39;,realname,username</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,175</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/loadDict/sys_role,role_name,role_code</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,175</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message"> pathVariable: sys_user%20where%20username%20like%20&#39;a%25&#39;,realname,username</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">44</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message"> pathVariable: sys_role,role_name,role_code</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">44</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message"> pathVariable decode: sys_user where username like &#39;a%&#39;,realname,username</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">56</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message"> pathVariable decode: sys_role,role_name,role_code</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">56</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message">Param paramsJsonStr : {&quot;keyword&quot;:&quot;&quot;,&quot;pageNo&quot;:&quot;1&quot;,&quot;pageSize&quot;:&quot;10&quot;,&quot;x-path-variable&quot;:&quot;sys_role,role_name,role_code&quot;}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message">Param paramsJsonStr : {&quot;keyword&quot;:&quot;&quot;,&quot;pageNo&quot;:&quot;1&quot;,&quot;pageSize&quot;:&quot;10&quot;,&quot;x-path-variable&quot;:&quot;sys_user where username like &#39;a%&#39;,realname,username&quot;}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message">Param Sign : 68A1FAA763F3656BC0170DAF169B396C</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message">Param Sign : A94389BD884D94133E492535C3E5F982</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,176</td>
<td class="Message"> 加载字典表数据,加载关键字: </td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">228</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,177</td>
<td class="Message"> 加载字典表数据,加载关键字: </td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">228</td>
</tr>

<tr class="warn even">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:36,177</td>
<td class="Message">URLDecoder: Illegal hex characters in escape (%) pattern - Error at index 0 in: &quot;&#39;,&quot;</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">103</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,177</td>
<td class="Message">字典拼接的查询SQL：select role_name,role_code from sys_role</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,177</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,178</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,179</td>
<td class="Message">获取select sql信息 ：{sys_role=SelectSqlInfo{fromTableName=&#39;sys_role&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[role_name, role_code], realSelectFields=[role_name, role_code], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,183</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,184</td>
<td class="Message">checkWhiteList tableName: sys_role</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,183</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,184</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,184</td>
<td class="Message">白名单校验：查询表&quot;sys_role&quot;，查询字段 [role_name, role_code] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,184</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,184</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_role&#39;, alias=&#39;&#39;, fields=[role_name, role_code], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,184</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,187</td>
<td class="Message">Result(success=true, message=, code=0, result=[DictModel(value=admin, text=管理员, color=null, jsonObject=null)], timestamp=1755311136177, onlTable=null)</td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">238</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:36,187</td>
<td class="Message">Result(success=true, message=, code=0, result=[DictModel(value=dbadeveloper, text=数据开发角色, color=null, jsonObject=null), DictModel(value=lowdeveloper, text=低代码开发角色, color=null, jsonObject=null), DictModel(value=vue3, text=Vue3全角色, color=null, jsonObject=null), DictModel(value=test, text=临时角色, color=null, jsonObject=null), DictModel(value=admin, text=管理员, color=null, jsonObject=null)], timestamp=1755311136177, onlTable=null)</td>
<td class="MethodOfCaller">loadDict</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">238</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:47,348</td>
<td class="Message"> path = /online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:47,349</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:47,440</td>
<td class="Message"> path = /online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:47,440</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/d35109c3632c4952a19ecc094943dd71]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:47,499</td>
<td class="Message">suffix:jpg</td>
<td class="MethodOfCaller">checkDownloadFileType</td>
<td class="FileOfCaller">SsrfFileTypeFilter.java</td>
<td class="LineOfCaller">152</td>
</tr>

<tr class="warn even">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:47,499</td>
<td class="Message">文件[temp/11_1654356229294.jpg]不存在..</td>
<td class="MethodOfCaller">view</td>
<td class="FileOfCaller">CommonController.java</td>
<td class="LineOfCaller">232</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:47,585</td>
<td class="Message">suffix:jpg</td>
<td class="MethodOfCaller">checkDownloadFileType</td>
<td class="FileOfCaller">SsrfFileTypeFilter.java</td>
<td class="LineOfCaller">152</td>
</tr>

<tr class="warn even">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:47,586</td>
<td class="Message">文件[temp/11_1654356229294.jpg]不存在..</td>
<td class="MethodOfCaller">view</td>
<td class="FileOfCaller">CommonController.java</td>
<td class="LineOfCaller">232</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:25:59,543</td>
<td class="Message">suffix:jpg</td>
<td class="MethodOfCaller">checkDownloadFileType</td>
<td class="FileOfCaller">SsrfFileTypeFilter.java</td>
<td class="LineOfCaller">152</td>
</tr>

<tr class="warn even">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 10:25:59,543</td>
<td class="Message">文件[temp/11_1654356225072.jpg]不存在..</td>
<td class="MethodOfCaller">view</td>
<td class="FileOfCaller">CommonController.java</td>
<td class="LineOfCaller">232</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,254</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1256627801873821698</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,255</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1256627801873821698]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,274</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[count(*), date_format(create_time, &#39;%y-%m-%d&#39;)], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,282</td>
<td class="Message">报表查询sql=&gt;
select * from (select DATE_FORMAT(create_time,  &#39;%Y-%m-%d&#39;) as date,count(*) as num from sys_log group by DATE_FORMAT(create_time, &#39;%Y-%m-%d&#39;)) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,282</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,380</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1256627801873821698</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,381</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1256627801873821698]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,402</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[count(*), date_format(create_time, &#39;%y-%m-%d&#39;)], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,409</td>
<td class="Message">报表查询sql=&gt;
select * from (select DATE_FORMAT(create_time,  &#39;%Y-%m-%d&#39;) as date,count(*) as num from sys_log group by DATE_FORMAT(create_time, &#39;%Y-%m-%d&#39;)) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:07,410</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:14,976</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:26,761</td>
<td class="Message">————————身份认证失败——————————IP地址:  0:0:0:0:0:0:0:1，URL:/jeecg-boot/1755311186755</td>
<td class="MethodOfCaller">doGetAuthenticationInfo</td>
<td class="FileOfCaller">ShiroRealm.java</td>
<td class="LineOfCaller">104</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 10:26:26,767</td>
<td class="Message">null</td>
<td class="MethodOfCaller">responseError</td>
<td class="FileOfCaller">JwtUtil.java</td>
<td class="LineOfCaller">69</td>
</tr>
<tr><td class="Exception" colspan="6">java.nio.channels.ClosedChannelException: null
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected(SocketChannelImpl.java:215)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:527)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:153)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:641)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.conduits.ChunkedStreamSinkConduit.flush(ChunkedStreamSinkConduit.java:277)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.conduits.DeflatingStreamSinkConduit.flush(DeflatingStreamSinkConduit.java:377)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:659)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.system.util.JwtUtil.responseError(JwtUtil.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.isAccessAllowed(JwtFilter.java:59)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:225)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:199)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.preHandle(JwtFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 10:26:33,023</td>
<td class="Message">No static resource bigscreen/template1/css/images/panel_tools.png.</td>
<td class="MethodOfCaller">handleException</td>
<td class="FileOfCaller">JeecgBootExceptionHandler.java</td>
<td class="LineOfCaller">124</td>
</tr>
<tr><td class="Exception" colspan="6">org.springframework.web.servlet.resource.NoResourceFoundException: No static resource bigscreen/template1/css/images/panel_tools.png.
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:172)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:73)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.boot.actuate.web.exchanges.servlet.HttpExchangesFilter.doFilterInternal(HttpExchangesFilter.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 10:26:33,023</td>
<td class="Message">No static resource bigscreen/template1/css/images/blank.gif.</td>
<td class="MethodOfCaller">handleException</td>
<td class="FileOfCaller">JeecgBootExceptionHandler.java</td>
<td class="LineOfCaller">124</td>
</tr>
<tr><td class="Exception" colspan="6">org.springframework.web.servlet.resource.NoResourceFoundException: No static resource bigscreen/template1/css/images/blank.gif.
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:172)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:73)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.boot.actuate.web.exchanges.servlet.HttpExchangesFilter.doFilterInternal(HttpExchangesFilter.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,762</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1590154651759259649</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,763</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1590154651759259649]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,792</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;demo&#39;, alias=&#39;demo&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,800</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from demo where sex = #{param._sql_param_sex}) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,800</td>
<td class="Message">报表查询sqlParam=&gt;
{_sql_param_sex=2}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,930</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1590154651759259649?sex=1</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,930</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1590154651759259649?sex=1]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,952</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;demo&#39;, alias=&#39;demo&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,960</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from demo where sex = #{param._sql_param_sex}) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:46,960</td>
<td class="Message">报表查询sqlParam=&gt;
{_sql_param_sex=1}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,268</td>
<td class="Message"> path = /online/cgreport/api/exportManySheetXls/1590154651759259649</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,268</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/exportManySheetXls/1590154651759259649]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,317</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;demo&#39;, alias=&#39;demo&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,324</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from demo where sex = #{param._sql_param_sex}) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,324</td>
<td class="Message">报表查询sqlParam=&gt;
{_sql_param_sex=1}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,370</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;demo&#39;, alias=&#39;demo&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,377</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from demo where sex = #{param._sql_param_sex}) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:26:51,377</td>
<td class="Message">报表查询sqlParam=&gt;
{_sql_param_sex=1}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,526</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1590154651759259649</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,527</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1590154651759259649]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,545</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;demo&#39;, alias=&#39;demo&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,554</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from demo where sex = #{param._sql_param_sex}) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,554</td>
<td class="Message">报表查询sqlParam=&gt;
{_sql_param_sex=2}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,654</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1590154651759259649?sex=1</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,654</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1590154651759259649?sex=1]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,675</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;demo&#39;, alias=&#39;demo&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,691</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from demo where sex = #{param._sql_param_sex}) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,692</td>
<td class="Message">报表查询sqlParam=&gt;
{_sql_param_sex=1}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,734</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,752</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 10:37:20,766</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)32毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 11:53:06,684</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 11:53:06,698</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 11:53:06,706</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)22毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:05:17,324</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:05:17,338</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:05:17,351</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)27毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:05,301</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:05,626</td>
<td class="Message">获取验证码，Redis key = 4248b17e603873ae21b8371783ee06fejiim，checkCode = JiiM</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:08,814</td>
<td class="Message">获取验证码，Redis key = 32db3f6114494d680157188f3cc91104sj2r，checkCode = sJ2R</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,035</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,076</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,085</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,100</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,101</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,111</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：9毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,112</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：10毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,112</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：10毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,112</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,112</td>
<td class="Message">3 获取用户信息耗时 (字典数据)32毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,114</td>
<td class="Message">end 获取用户信息耗时 34毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,939</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,956</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:06:41,963</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)23毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:08:34,211</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:08:34,230</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:08:34,241</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)30毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:08:36,925</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:08:37,212</td>
<td class="Message">获取验证码，Redis key = df817d5d864db496bf53b2764b25368bd69f，checkCode = d69F</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:08:39,262</td>
<td class="Message">获取验证码，Redis key = ee822f8473a1e33f5a87fd1f23eac1fb3v1f，checkCode = 3v1F</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:01,252</td>
<td class="Message">获取验证码，Redis key = 8d1e5390c7ede8eca4314619130d24990he5，checkCode = 0HE5</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:29,669</td>
<td class="Message">获取验证码，Redis key = b2bd7803d13d844b0884e6a12fcc0ac0bjah，checkCode = BJAh</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:29,846</td>
<td class="Message">获取验证码，Redis key = a3c8a35f4de2deffbc322b3f70cca14ei7gw，checkCode = i7Gw</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:32,946</td>
<td class="Message">获取验证码，Redis key = cb248316e3ad3fb77716c1084035783c04ry，checkCode = 04RY</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,043</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,078</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,084</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,095</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)14毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,095</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,101</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,101</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,101</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,101</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,101</td>
<td class="Message">3 获取用户信息耗时 (字典数据)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,101</td>
<td class="Message">end 获取用户信息耗时 20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,839</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,852</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:16:48,862</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)23毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:14,405</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:14,441</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)35毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:14,463</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)57毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:15,793</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:15,802</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:15,811</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:38,405</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:38,420</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)16毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:38,431</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)26毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:39,755</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:39,762</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:39,772</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:40,549</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:40,559</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:40,567</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:52,457</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:52,474</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:52,487</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)30毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:53,775</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:53,785</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:19:53,798</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)23毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:21:01,513</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:21:01,867</td>
<td class="Message">获取验证码，Redis key = d51c439025d23a2d4714caf285439d79g1m5，checkCode = g1M5</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:21:10,294</td>
<td class="Message">获取验证码，Redis key = dbf9703f97d2adc5cc1c470fbf60292bbywj，checkCode = byWj</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:22:01,194</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:22:30,164</td>
<td class="Message">获取验证码，Redis key = ecb5804ab589818621f1359c54b017ccj27g，checkCode = j27g</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 12:28:47,711</td>
<td class="Message">UT010029: Stream is closed</td>
<td class="MethodOfCaller">responseError</td>
<td class="FileOfCaller">JwtUtil.java</td>
<td class="LineOfCaller">69</td>
</tr>
<tr><td class="Exception" colspan="6">java.io.IOException: UT010029: Stream is closed
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:139)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.system.util.JwtUtil.responseError(JwtUtil.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.isAccessAllowed(JwtFilter.java:59)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:225)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:199)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.preHandle(JwtFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:28:48,000</td>
<td class="Message">获取验证码，Redis key = 33311a09dcba31f46df5baa96976527fw5me，checkCode = W5me</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:14,886</td>
<td class="Message">获取验证码，Redis key = 72357d335473a1c999375ae69782c102lauq，checkCode = LaUq</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:15,501</td>
<td class="Message">获取验证码，Redis key = 023394ac108f316feb105ad87e991e19uwbl，checkCode = UWBL</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:40,831</td>
<td class="Message">获取验证码，Redis key = 0b55b6b2df39f72c12e849d980aaa4bfg6yj，checkCode = G6YJ</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,165</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,206</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,224</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,224</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,231</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,232</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,232</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,232</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,232</td>
<td class="Message">3 获取用户信息耗时 (字典数据)31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:57,232</td>
<td class="Message">end 获取用户信息耗时 31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:58,035</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:58,045</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:30:58,054</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)20毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:08,305</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:08,539</td>
<td class="Message">获取验证码，Redis key = d25ed003d4f039de6834e28b2e67aeceuyqy，checkCode = UyQy</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,232</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,267</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,276</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,291</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,291</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,297</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,298</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,298</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,299</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,299</td>
<td class="Message">3 获取用户信息耗时 (字典数据)28毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:38,299</td>
<td class="Message">end 获取用户信息耗时 28毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:39,077</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:39,090</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:39,102</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)25毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:45,918</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:46,134</td>
<td class="Message">获取验证码，Redis key = 4c268ecb26b0b6f7867905eebad591b41ge6，checkCode = 1ge6</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,018</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,046</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,054</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,066</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)17毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,066</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,071</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：4毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,071</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：4毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,071</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：4毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,071</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,071</td>
<td class="Message">3 获取用户信息耗时 (字典数据)22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,072</td>
<td class="Message">end 获取用户信息耗时 23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,846</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,857</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:53,863</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:57,107</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:57,121</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:31:57,132</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)25毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:32:59,204</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:32:59,222</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)20毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:32:59,231</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)29毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:33:53,947</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:33:53,960</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:33:53,966</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:34:01,102</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:34:01,375</td>
<td class="Message">获取验证码，Redis key = bcdded7bd7380246b4ce10937c2ee313tdfk，checkCode = TDfk</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:35:27,593</td>
<td class="Message">获取验证码，Redis key = b1a574ba9aa7635814073b41100a40ef4gnd，checkCode = 4gNd</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:37:22,408</td>
<td class="Message">获取验证码，Redis key = 22f09024b62f434f3da2d2b375554675avvc，checkCode = AvVC</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:38:07,137</td>
<td class="Message">获取验证码，Redis key = cfcc2fa84d60fecb8054ef8684756f4b2bkd，checkCode = 2Bkd</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:40:16,887</td>
<td class="Message">获取验证码，Redis key = 1dfd50e129106ae2cd785f113bf840d9pw1a，checkCode = Pw1A</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:29,791</td>
<td class="Message">获取验证码，Redis key = d4836c78fbfe6a794d566f02e5a7a1dbfpan，checkCode = FPan</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,901</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,955</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,965</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,983</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)24毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,984</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,992</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,992</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,992</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,993</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,993</td>
<td class="Message">3 获取用户信息耗时 (字典数据)34毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:36,993</td>
<td class="Message">end 获取用户信息耗时 34毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:37,459</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:37,470</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:37,477</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:42,933</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:43,051</td>
<td class="Message">获取验证码，Redis key = c533e155531c54b0cc57c4b3b76102b8fxee，checkCode = FxEE</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,934</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,970</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,977</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,988</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)14毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,988</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,994</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,994</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,994</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,994</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,994</td>
<td class="Message">3 获取用户信息耗时 (字典数据)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:47,994</td>
<td class="Message">end 获取用户信息耗时 20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:48,828</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:48,841</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:48,850</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)23毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:56,567</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:41:56,783</td>
<td class="Message">获取验证码，Redis key = 2d819946bb6b34050aafae7f130991f55r9x，checkCode = 5r9X</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:43:05,574</td>
<td class="Message">获取验证码，Redis key = 3345db988da120f1a44f45b30db234aedncq，checkCode = DNCq</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:48:24,041</td>
<td class="Message">获取验证码，Redis key = ace632344089b32a1cedb1f18f48e758t55k，checkCode = t55k</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:48:53,315</td>
<td class="Message">获取验证码，Redis key = c4fdc0239822ac82d1f63b2f7ba6e445bycf，checkCode = byCF</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:48:55,541</td>
<td class="Message">获取验证码，Redis key = 3cb6cae9f31931e85923257be9503824lsgq，checkCode = LsgQ</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:48:58,138</td>
<td class="Message">获取验证码，Redis key = a73e924b3b244df351b1bfe31acbfb2djvzf，checkCode = JVzF</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:49:11,340</td>
<td class="Message">获取验证码，Redis key = 875b3a1a4bc25b0870b3944d0cf119baubrf，checkCode = ubRF</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:49:14,058</td>
<td class="Message">获取验证码，Redis key = 4b15889d213a1725c0917e4ce6030fcapiss，checkCode = pisS</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:49:18,337</td>
<td class="Message">获取验证码，Redis key = fa907150d693a328cb53d9d5efabf4d4hnfv，checkCode = hnFv</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:49:20,420</td>
<td class="Message">获取验证码，Redis key = 2d62d0f829b5a40295818a13a60393d6uwgr，checkCode = uwGr</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:26,705</td>
<td class="Message">获取验证码，Redis key = dd1f536ecc0adbf04856725ee42f0ffctid2，checkCode = tid2</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,260</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,300</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,308</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）4毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,323</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,324</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,330</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,331</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,331</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,331</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,331</td>
<td class="Message">3 获取用户信息耗时 (字典数据)27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:37,331</td>
<td class="Message">end 获取用户信息耗时 27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:38,061</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:38,076</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:38,084</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)23毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:49,498</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:49,506</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:49,506</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:49,506</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:49,506</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:52,928</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:53,174</td>
<td class="Message">获取验证码，Redis key = 14e0c0b5665ee430f14d77966b38ba90iewl，checkCode = ieWl</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 12:50:59,415</td>
<td class="Message">验证码错误，key= 1755319853165t9xv , Ui checkCode= iewi, Redis checkCode = null</td>
<td class="MethodOfCaller">login</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">98</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:50:59,445</td>
<td class="Message">获取验证码，Redis key = 6b8e3e696eb0ca95d0073d7262ffc7dfigym，checkCode = igYm</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:05,972</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,007</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,017</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,035</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,036</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,042</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,043</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,043</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,043</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,043</td>
<td class="Message">3 获取用户信息耗时 (字典数据)31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:06,043</td>
<td class="Message">end 获取用户信息耗时 31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:07,123</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:07,137</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:07,148</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)25毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:12,785</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:12,794</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)9毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:12,800</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:15,163</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:15,176</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:15,182</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:17,377</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:17,389</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:17,399</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)22毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:19,904</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:19,918</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:19,925</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)21毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:26,243</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:51:26,495</td>
<td class="Message">获取验证码，Redis key = d69d142431eebda8e0c916413aa7fb44nwl1，checkCode = NwL1</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:53:30,583</td>
<td class="Message">获取验证码，Redis key = 3b088b619c69369da788035528691980ra45，checkCode = RA45</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:54:16,627</td>
<td class="Message">第三方登录进入render：wechat_open</td>
<td class="MethodOfCaller">render</td>
<td class="FileOfCaller">ThirdLoginController.java</td>
<td class="LineOfCaller">83</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:54:16,646</td>
<td class="Message">第三方登录认证地址：https://open.weixin.qq.com/connect/qrconnect?response_type=code&amp;appid=??&amp;redirect_uri=http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/wechat_open/callback&amp;scope=snsapi_login&amp;state=f660527e4f8d1ef15d42e741002f3adc</td>
<td class="MethodOfCaller">render</td>
<td class="FileOfCaller">ThirdLoginController.java</td>
<td class="LineOfCaller">86</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:56:56,894</td>
<td class="Message">获取验证码，Redis key = 5065b33d69c856913b6f6529335b4affcwqv，checkCode = CwqV</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:56:58,719</td>
<td class="Message">获取验证码，Redis key = 60eeda79fc5a83bb4e1cb339af7d3934snsk，checkCode = SnSK</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:57:00,595</td>
<td class="Message">获取验证码，Redis key = 1840be74799960090c8502b064736d1brn8y，checkCode = RN8y</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:57:02,954</td>
<td class="Message">获取验证码，Redis key = 670647310fd8be0d69ebb4d15cd141f2k2eg，checkCode = K2eg</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:57:07,625</td>
<td class="Message">获取验证码，Redis key = 8a98e392cfea7b54ebf8960bdc631de2bvc0，checkCode = bVC0</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:57:09,422</td>
<td class="Message">获取验证码，Redis key = 14252013211a9f22f06fce7cdc748a03tuyn，checkCode = tUYn</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:57:11,651</td>
<td class="Message">获取验证码，Redis key = 98ccbabd3260e22fea9f36f343af1983cg1l，checkCode = Cg1l</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:57:45,065</td>
<td class="Message">获取验证码，Redis key = 65a25a6eaf890a8a022bccbe4c252c6881ay，checkCode = 81Ay</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:58:50,604</td>
<td class="Message">获取验证码，Redis key = c95b6d1548e2492029efdb00017458f91tv7，checkCode = 1tV7</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:59:50,466</td>
<td class="Message">获取验证码，Redis key = 460560c0d42ec761bbe577ed867d5082w5kd，checkCode = W5KD</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:59:53,129</td>
<td class="Message">获取验证码，Redis key = 924663a3c732f5cafc88b63ba5b33bc4lt9l，checkCode = lt9L</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:59:54,870</td>
<td class="Message">获取验证码，Redis key = d1f78fbf60a827adb5c3f1670c05e92bnbnq，checkCode = nBNq</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 12:59:55,078</td>
<td class="Message">获取验证码，Redis key = d0cb68a4fb0bf7f8d4fe5e14d1bd8e538usm，checkCode = 8usm</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:00:12,006</td>
<td class="Message">获取验证码，Redis key = 271543d6856cfed350251fef09bf20c1y1pb，checkCode = Y1pb</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:00:13,618</td>
<td class="Message">获取验证码，Redis key = edbe0236e46626a7b6713e76c46750c97bqa，checkCode = 7BQA</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 13:02:14,061</td>
<td class="Message">验证码错误，key= 17553204119138a4a , Ui checkCode= y1pb, Redis checkCode = null</td>
<td class="MethodOfCaller">login</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">98</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:14,099</td>
<td class="Message">获取验证码，Redis key = be5523c644e14159dfbfc58855a4d814vjkr，checkCode = VJKR</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,756</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,803</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,813</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,832</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)24毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,833</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,841</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,842</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：9毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,842</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：9毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,842</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,842</td>
<td class="Message">3 获取用户信息耗时 (字典数据)34毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:20,842</td>
<td class="Message">end 获取用户信息耗时 34毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:21,896</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:21,913</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:21,921</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)25毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:48,528</td>
<td class="Message"> 获取登录人 LoginUser id: e9ca23d68d884d4ebb19d07889727dae</td>
<td class="MethodOfCaller">querySysMessageList</td>
<td class="FileOfCaller">SysAnnouncementServiceImpl.java</td>
<td class="LineOfCaller">208</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:48,544</td>
<td class="Message">耗时：15 毫秒</td>
<td class="MethodOfCaller">vue3List</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">652</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:49,555</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:49,565</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:49,574</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:50,012</td>
<td class="Message"> 获取登录人 LoginUser id: e9ca23d68d884d4ebb19d07889727dae</td>
<td class="MethodOfCaller">querySysMessageList</td>
<td class="FileOfCaller">SysAnnouncementServiceImpl.java</td>
<td class="LineOfCaller">208</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:50,038</td>
<td class="Message">耗时：26 毫秒</td>
<td class="MethodOfCaller">vue3List</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">652</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:50,676</td>
<td class="Message"> 获取登录人 LoginUser id: e9ca23d68d884d4ebb19d07889727dae</td>
<td class="MethodOfCaller">querySysMessageList</td>
<td class="FileOfCaller">SysAnnouncementServiceImpl.java</td>
<td class="LineOfCaller">208</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:50,695</td>
<td class="Message">耗时：19 毫秒</td>
<td class="MethodOfCaller">vue3List</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">652</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:51,050</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:51,058</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:51,065</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:51,711</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:51,716</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:02:51,722</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,586</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,589</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,589</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,590</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,638</td>
<td class="Message">字典拼接的查询SQL：select phone from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,639</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[phone], realSelectFields=[phone], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,643</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,643</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:04:23,643</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [phone] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:06:42,871</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:06:42,881</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:06:42,886</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)16毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:18:07,621</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:18:07,631</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:18:07,639</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:18:08,852</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:18:08,858</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 13:18:08,864</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:15,079</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:15,359</td>
<td class="Message">获取验证码，Redis key = 59dda915dd833554402c9a4d45cd4abewacv，checkCode = WAcV</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:20,192</td>
<td class="Message">获取验证码，Redis key = 1346ffc831277f7ff8e8a06df583264ahcjv，checkCode = hcJV</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:31,317</td>
<td class="Message">获取验证码，Redis key = e0cb49870df8e6ba33d3509856c257011ss8，checkCode = 1ss8</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:47,474</td>
<td class="Message">获取验证码，Redis key = b7e48bc84afb200f55732343034ce7766qtj，checkCode = 6qTj</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,036</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,076</td>
<td class="Message">加密操作，Aspect程序耗时：2ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,087</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,106</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,106</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,112</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,112</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,113</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,113</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,113</td>
<td class="Message">3 获取用户信息耗时 (字典数据)30毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:55,113</td>
<td class="Message">end 获取用户信息耗时 30毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:56,441</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:56,449</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:33:56,460</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 17:34:40,645</td>
<td class="Message">验证码错误，key= 17553368112989ev8 , Ui checkCode= 1ss8, Redis checkCode = null</td>
<td class="MethodOfCaller">login</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">98</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:40,693</td>
<td class="Message">获取验证码，Redis key = 6be33c80a4891e75ccc11910dfc41ee0m3wx，checkCode = m3Wx</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,746</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,776</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）4毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,788</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)16毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,788</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,794</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,794</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,794</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,794</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,794</td>
<td class="Message">3 获取用户信息耗时 (字典数据)22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:46,794</td>
<td class="Message">end 获取用户信息耗时 22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:47,609</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:47,629</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)21毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:34:47,636</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)28毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,355</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ai_app_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,356</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ai_app_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,356</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ai_app_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,355</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ai_app_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,357</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,357</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,357</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,357</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,357</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,358</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,357</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,359</td>
<td class="Message"> dictCode : ai_app_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,359</td>
<td class="Message"> dictCode : ai_app_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,360</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,360</td>
<td class="Message"> dictCode : ai_app_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,359</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,364</td>
<td class="Message"> dictCode : ai_app_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,407</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,408</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,410</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,411</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,411</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,411</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,416</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_flow where status = &#39;enable&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,418</td>
<td class="Message">获取select sql信息 ：{airag_flow=SelectSqlInfo{fromTableName=&#39;airag_flow&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,420</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,421</td>
<td class="Message">checkWhiteList tableName: airag_flow</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,421</td>
<td class="Message">白名单校验：查询表&quot;airag_flow&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,421</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_flow&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,425</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_model where model_type = &#39;LLM&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,426</td>
<td class="Message">获取select sql信息 ：{airag_model=SelectSqlInfo{fromTableName=&#39;airag_model&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,428</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,428</td>
<td class="Message">checkWhiteList tableName: airag_model</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,428</td>
<td class="Message">白名单校验：查询表&quot;airag_model&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:33,428</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_model&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,808</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/airag_model%20where%20model_type%20=%20&#39;LLM&#39;,name,id</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,808</td>
<td class="Message"> pathVariable: airag_model%20where%20model_type%20=%20&#39;LLM&#39;,name,id</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">44</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,809</td>
<td class="Message"> pathVariable decode: airag_model where model_type = &#39;LLM&#39;,name,id</td>
<td class="MethodOfCaller">getAllParams</td>
<td class="FileOfCaller">HttpUtils.java</td>
<td class="LineOfCaller">56</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,809</td>
<td class="Message">Param paramsJsonStr : {&quot;x-path-variable&quot;:&quot;airag_model where model_type = &#39;LLM&#39;,name,id&quot;}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,809</td>
<td class="Message">Param Sign : 3685BEF103B7796396C3321663C28826</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,809</td>
<td class="Message"> dictCode : airag_model where model_type = &#39;LLM&#39;,name,id</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,810</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_model where model_type = &#39;LLM&#39;</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,811</td>
<td class="Message">获取select sql信息 ：{airag_model=SelectSqlInfo{fromTableName=&#39;airag_model&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,814</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,815</td>
<td class="Message">checkWhiteList tableName: airag_model</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,815</td>
<td class="Message">白名单校验：查询表&quot;airag_model&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:36,816</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_model&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:35:56,736</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:36:06,175</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:16,038</td>
<td class="Message">字典拼接的查询SQL：select rule_code from sys_check_rule</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:16,040</td>
<td class="Message">获取select sql信息 ：{sys_check_rule=SelectSqlInfo{fromTableName=&#39;sys_check_rule&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[rule_code], realSelectFields=[rule_code], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:16,043</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:16,043</td>
<td class="Message">checkWhiteList tableName: sys_check_rule</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:16,043</td>
<td class="Message">白名单校验：查询表&quot;sys_check_rule&quot;，查询字段 [rule_code] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:56,831</td>
<td class="Message">字典拼接的查询SQL：select rule_code from sys_check_rule</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:56,833</td>
<td class="Message">获取select sql信息 ：{sys_check_rule=SelectSqlInfo{fromTableName=&#39;sys_check_rule&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[rule_code], realSelectFields=[rule_code], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:56,838</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:56,838</td>
<td class="Message">checkWhiteList tableName: sys_check_rule</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:37:56,838</td>
<td class="Message">白名单校验：查询表&quot;sys_check_rule&quot;，查询字段 [rule_code] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:24,805</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:40,975</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:42,971</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:44,198</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,182</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1705487386450534402</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,182</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1705487386450534402]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,197</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,203</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from sys_log) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,204</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,379</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1705487386450534402</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,379</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1705487386450534402]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,401</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,409</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from sys_log) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:38:53,410</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:03,126</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,547</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,549</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,549</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,550</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,620</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,620</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:13,633</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,753</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,754</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,755</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,755</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,813</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,814</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,816</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,816</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:39:31,816</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:05,548</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:05,550</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:05,552</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:05,552</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:05,552</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:31,638</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:31,638</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:31,643</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:31,644</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:31,772</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:31,772</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:34,452</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:34,452</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:34,543</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:34,543</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,179</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,180</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,180</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,180</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,206</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,207</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:40:39,214</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:04,324</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:04,325</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:04,333</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:04,333</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:04,504</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:04,504</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:08,027</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:08,027</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:08,092</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:08,092</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,671</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,671</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,671</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,672</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,707</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,708</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:14,734</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,273</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,274</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,274</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,275</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,332</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,333</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,335</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,336</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:21,336</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:34,803</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:34,806</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:34,809</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:34,809</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:34,809</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:35,065</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/api/editAll</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:35,420</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:35,420</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:35,428</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,293</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/api/doDbSynch/402881f098a948420198a955015d0002/normal</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,308</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------useId： e9ca23d68d884d4ebb19d07889727dae,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSetById</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1139</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,344</td>
<td class="Message">-------通过数据库读取用户拥有的权限Perms------userId： e9ca23d68d884d4ebb19d07889727dae,Perms size: 174</td>
<td class="MethodOfCaller">getUserPermissionSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1170</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,344</td>
<td class="Message">===============Shiro权限认证成功==============</td>
<td class="MethodOfCaller">doGetAuthorizationInfo</td>
<td class="FileOfCaller">ShiroRealm.java</td>
<td class="LineOfCaller">86</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,564</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,565</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:45,573</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:48,780</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:48,780</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:48,781</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:48,781</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:48,856</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:48,856</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:51,680</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:51,680</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:51,680</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:51,680</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,712</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,712</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,713</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,713</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,798</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,798</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,842</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,851</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)9毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:41:59,856</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:06,975</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:06,976</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:06,976</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:06,977</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:07,014</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:07,014</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:07,021</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,677</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,678</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,678</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,678</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,744</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,744</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,746</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,746</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:12,747</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,358</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,361</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,365</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,365</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,365</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,597</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/api/editAll</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,894</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,894</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:40,901</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:45,355</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:45,355</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:45,357</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:45,357</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:45,422</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:45,422</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:47,749</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:47,750</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:47,841</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:47,842</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:55,094</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:55,095</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:55,190</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:55,190</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:57,403</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:57,403</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:57,404</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:42:57,404</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,928</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,929</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,929</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,929</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,953</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,954</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:16,960</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,679</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,680</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,681</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,681</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,756</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,757</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,759</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,759</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:43:58,759</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:24,626</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:24,627</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:24,627</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:24,627</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:24,713</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:24,713</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,205</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,206</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,206</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,206</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,241</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,241</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:51,263</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,456</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,457</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,457</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,457</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,517</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,517</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,520</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,520</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:44:53,520</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:05,885</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:05,890</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:05,893</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:05,894</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:05,894</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:06,260</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/api/editAll</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:06,488</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:06,488</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:06,499</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:09,574</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:09,575</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:09,579</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:09,580</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:09,632</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:09,632</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,313</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,314</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,314</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,315</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,338</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,339</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:20,348</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,264</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,265</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,266</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,266</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,322</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,323</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,325</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,325</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:45:22,325</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:34,294</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:34,295</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:34,299</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:34,299</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:34,359</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:34,361</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,229</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,229</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,230</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,230</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,306</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,306</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,412</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,423</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:49,429</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,825</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,826</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,826</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,827</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,856</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,858</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:47:58,893</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,559</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,559</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,559</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,560</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,622</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,623</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,626</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,626</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:01,626</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:50,868</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:50,870</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:50,872</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:50,872</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:48:50,872</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:08,757</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:08,758</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:08,761</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:08,761</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:08,761</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:59,564</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:59,564</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:59,566</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:59,567</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:49:59,567</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:16,526</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:16,527</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:16,529</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:16,530</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:16,530</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:42,994</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:42,995</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:42,996</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:42,996</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,028</td>
<td class="Message"> path = /online/cgform/api/getData/56870166aba54ebfacb20ba6c770bd73</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,029</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/56870166aba54ebfacb20ba6c770bd73]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,090</td>
<td class="Message"> path = /online/cgform/api/getData/56870166aba54ebfacb20ba6c770bd73</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,091</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/56870166aba54ebfacb20ba6c770bd73]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,208</td>
<td class="Message"> path = /online/cgform/api/getData/56870166aba54ebfacb20ba6c770bd73</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,209</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/56870166aba54ebfacb20ba6c770bd73]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,383</td>
<td class="Message"> path = /online/cgform/api/getData/41de7884bf9a42b7a2c5918f9f765dff</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,383</td>
<td class="Message"> path = /online/cgform/api/getData/deea5a8ec619460c9245ba85dbc59e80</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,383</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/41de7884bf9a42b7a2c5918f9f765dff]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,383</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/deea5a8ec619460c9245ba85dbc59e80]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,555</td>
<td class="Message"> path = /online/cgform/api/getData/deea5a8ec619460c9245ba85dbc59e80</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,555</td>
<td class="Message"> path = /online/cgform/api/getData/41de7884bf9a42b7a2c5918f9f765dff</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,556</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/deea5a8ec619460c9245ba85dbc59e80]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:43,556</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/41de7884bf9a42b7a2c5918f9f765dff]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:50,486</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:50,487</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:50,489</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:50:50,491</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:05,667</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:05,668</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:05,669</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:05,669</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:11,781</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:11,781</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:11,781</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:11,782</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,288</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,293</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,293</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,293</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,292</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,291</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,294</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,294</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,294</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,295</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,333</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,342</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/sex</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,342</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,342</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:26,342</td>
<td class="Message"> dictCode : sex</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,158</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,158</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,158</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,159</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,228</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,229</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,231</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,231</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:30,231</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:59,612</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:59,614</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:59,618</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:59,618</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:59,618</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:51:59,857</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/api/editAll</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:00,151</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:00,152</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:00,160</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:03,300</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:03,301</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:03,329</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:03,329</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:03,385</td>
<td class="Message"> path = /online/cgform/api/getData/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:03,386</td>
<td class="Message">获取的菜单地址= [/online/cgform/api/getData/402881f098a948420198a955015d0002]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,739</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,740</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,740</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,740</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,779</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,780</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:33,788</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,625</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,626</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,626</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,626</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,684</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,684</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,686</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,686</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:35,686</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:47,845</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJs/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:52:59,119</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJs/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:53:18,004</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJava/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:53:18,035</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJava/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:54:18,663</td>
<td class="Message"> connect databaseName : jeecg-boot</td>
<td class="MethodOfCaller">readAllTableNames</td>
<td class="FileOfCaller">DbReadTableUtil.java</td>
<td class="LineOfCaller">67</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:13,323</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:13,325</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:13,328</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:13,329</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:13,329</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 17:56:26,871</td>
<td class="Message">UT010029: Stream is closed</td>
<td class="MethodOfCaller">responseError</td>
<td class="FileOfCaller">JwtUtil.java</td>
<td class="LineOfCaller">69</td>
</tr>
<tr><td class="Exception" colspan="6">java.io.IOException: UT010029: Stream is closed
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:139)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.system.util.JwtUtil.responseError(JwtUtil.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.isAccessAllowed(JwtFilter.java:59)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:225)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:199)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.preHandle(JwtFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:55,669</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:55,670</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:55,672</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:55,672</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:56:55,672</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:57:37,191</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:57:37,192</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:57:37,194</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:57:37,195</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 17:57:37,195</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:24,444</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:24,445</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:24,447</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:24,447</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:24,447</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:57,917</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:57,918</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:57,920</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:57,920</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:00:57,920</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:45,604</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:45,606</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:45,606</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:45,606</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:45,622</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,227</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1705487386450534402</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,228</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1705487386450534402]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,240</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,246</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from sys_log) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,246</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,367</td>
<td class="Message"> path = /online/cgreport/api/getColumnsAndData/1705487386450534402</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,367</td>
<td class="Message">获取的菜单地址= [/online/cgreport/api/getColumnsAndData/1705487386450534402]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,410</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_log&#39;, alias=&#39;sys_log&#39;, fields=[], all=true}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,440</td>
<td class="Message">报表查询sql=&gt;
select * from (select * from sys_log) jeecg_rp_temp </td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">202</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:01:50,442</td>
<td class="Message">报表查询sqlParam=&gt;
{}</td>
<td class="MethodOfCaller">executeSelectSql</td>
<td class="FileOfCaller">OnlCgreportHeadServiceImpl.java</td>
<td class="LineOfCaller">203</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:06,236</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,308</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,309</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,310</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,310</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,344</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,344</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:27,387</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,442</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/ol_form_biz_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,443</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,444</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,444</td>
<td class="Message"> dictCode : ol_form_biz_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,507</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,508</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,510</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,510</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:38,510</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:49,876</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:49,877</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:49,886</td>
<td class="Message">单字段排序规则&gt;&gt; column:tableType,排序方式:asc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:50,565</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:50,565</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:50,573</td>
<td class="Message">单字段排序规则&gt;&gt; column:tableType,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:51,243</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:51,243</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:51,252</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:54,117</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:54,118</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:54,124</td>
<td class="Message">单字段排序规则&gt;&gt; column:tableType,排序方式:asc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:54,890</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:54,890</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:02:54,901</td>
<td class="Message">单字段排序规则&gt;&gt; column:tableType,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:03:00,666</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:03:00,667</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:03:00,675</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:03:03,490</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJava/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:03:03,502</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJava/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:03:53,867</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJava/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 18:03:53,885</td>
<td class="Message">校验关联数据</td>
<td class="MethodOfCaller">a</td>
<td class="FileOfCaller">CgformUtil.java</td>
<td class="LineOfCaller">1807</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.ClassNotFoundException: 校验关联数据
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Class.forName0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Class.forName(Class.java:375)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.online.cgform.d.d.a(CgformUtil.java:1794)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.online.cgform.c.d.b(OnlCgformHeadController.java:418)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.reflect.Method.invoke(Method.java:569)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.aspect.DictAspect.doAround(DictAspect.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jdk.internal.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.reflect.Method.invoke(Method.java:569)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:642)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:632)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:55)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:431)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.evaluate(CacheAspectSupport.java:601)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:448)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:410)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.spring.security.interceptor.AopAllianceAnnotationsAuthorizingMethodInterceptor$1.proceed(AopAllianceAnnotationsAuthorizingMethodInterceptor.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.authz.aop.AuthorizingMethodInterceptor.invoke(AuthorizingMethodInterceptor.java:39)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.spring.security.interceptor.AopAllianceAnnotationsAuthorizingMethodInterceptor.invoke(AopAllianceAnnotationsAuthorizingMethodInterceptor.java:123)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.online.cgform.c.d$$SpringCGLIB$$0.b(&lt;generated&gt;)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.reflect.Method.invoke(Method.java:569)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:191)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:172)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.boot.actuate.web.exchanges.servlet.HttpExchangesFilter.doFilterInternal(HttpExchangesFilter.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:04:11,852</td>
<td class="Message">低代码模式，拦截请求路径：/jeecg-boot/online/cgform/head/enhanceJava/402881f098a948420198a955015d0002</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">LowCodeModeInterceptor.java</td>
<td class="LineOfCaller">58</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 18:04:11,863</td>
<td class="Message">check</td>
<td class="MethodOfCaller">a</td>
<td class="FileOfCaller">CgformUtil.java</td>
<td class="LineOfCaller">1807</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.ClassNotFoundException: check
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Class.forName0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Class.forName(Class.java:375)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.online.cgform.d.d.a(CgformUtil.java:1794)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.online.cgform.c.d.b(OnlCgformHeadController.java:418)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.reflect.Method.invoke(Method.java:569)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.aspect.DictAspect.doAround(DictAspect.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jdk.internal.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.reflect.Method.invoke(Method.java:569)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:642)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:632)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:55)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:431)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.evaluate(CacheAspectSupport.java:601)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:448)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:410)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.spring.security.interceptor.AopAllianceAnnotationsAuthorizingMethodInterceptor$1.proceed(AopAllianceAnnotationsAuthorizingMethodInterceptor.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.authz.aop.AuthorizingMethodInterceptor.invoke(AuthorizingMethodInterceptor.java:39)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.spring.security.interceptor.AopAllianceAnnotationsAuthorizingMethodInterceptor.invoke(AopAllianceAnnotationsAuthorizingMethodInterceptor.java:123)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.online.cgform.c.d$$SpringCGLIB$$0.b(&lt;generated&gt;)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.reflect.Method.invoke(Method.java:569)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:191)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:172)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at com.alibaba.druid.support.jakarta.WebStatFilter.doFilter(WebStatFilter.java:113)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.boot.actuate.web.exchanges.servlet.HttpExchangesFilter.doFilterInternal(HttpExchangesFilter.java:89)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:05:57,239</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:05:57,242</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:05:57,245</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:05:57,245</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:05:57,245</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:08:54,399</td>
<td class="Message">字典拼接的查询SQL：select table_name from onl_cgform_head</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:08:54,400</td>
<td class="Message">获取select sql信息 ：{onl_cgform_head=SelectSqlInfo{fromTableName=&#39;onl_cgform_head&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[table_name], realSelectFields=[table_name], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:08:54,402</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:08:54,402</td>
<td class="Message">checkWhiteList tableName: onl_cgform_head</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:08:54,402</td>
<td class="Message">白名单校验：查询表&quot;onl_cgform_head&quot;，查询字段 [table_name] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:17:45,036</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:17:45,159</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)123毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:17:45,168</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)132毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:17:52,812</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:17:52,818</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:17:52,824</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:18:01,825</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:18:01,835</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:18:01,840</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,238</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,241</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,242</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,244</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,365</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,365</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,382</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,490</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,497</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:20:57,505</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,038</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,038</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,038</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,039</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,185</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,188</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,214</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,331</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,337</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:12,357</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)26毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:47,730</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:47,741</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:47,747</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:50,417</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:50,422</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:21:50,429</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:22:14,686</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:22:14,691</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:22:14,708</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)22毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:22:21,525</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:22:21,530</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:22:21,535</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,697</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,704</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,705</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,705</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,834</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,835</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,857</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,908</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,918</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:05,925</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:16,287</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:16,436</td>
<td class="Message">获取验证码，Redis key = 57c5b70386b1604e950533e15885bd2ddu6n，checkCode = du6n</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:27,170</td>
<td class="Message">获取验证码，Redis key = ac9d8ee199139596fcd6caab4a62fc4a3k9f，checkCode = 3k9f</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,245</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,290</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,295</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）2毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,308</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)15毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,309</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,314</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,314</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,315</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,315</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,315</td>
<td class="Message">3 获取用户信息耗时 (字典数据)22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:35,315</td>
<td class="Message">end 获取用户信息耗时 22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:36,327</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:36,329</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:36,349</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:36,455</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:36,460</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:24:36,466</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:07,021</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:07,022</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:07,036</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:07,117</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:07,122</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:07,130</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:21,012</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:21,019</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:21,052</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:21,092</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:21,098</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:21,103</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:40,225</td>
<td class="Message">获取验证码，Redis key = db9d2ad3d64600cf28a644ece4771773kgku，checkCode = KGKu</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:42,713</td>
<td class="Message">获取验证码，Redis key = c91b6bfa304e79abcb3c1e3b03abf2fcsbbm，checkCode = SbBM</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,170</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,200</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,211</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)17毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,213</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,219</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：4毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,220</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,220</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,220</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,220</td>
<td class="Message">3 获取用户信息耗时 (字典数据)26毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:50,220</td>
<td class="Message">end 获取用户信息耗时 26毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:51,270</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:51,272</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:51,285</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:51,454</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:51,464</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:27:51,474</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)21毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:30:57,901</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:30:57,917</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:30:57,924</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)24毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:31:00,847</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:31:00,855</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:31:00,862</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:01,542</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:01,552</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:01,576</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:01,633</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:01,641</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:01,646</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:09,470</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:09,646</td>
<td class="Message">获取验证码，Redis key = 957be38467df3818532a62eccd3426b3x7ur，checkCode = x7Ur</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:11,471</td>
<td class="Message">获取验证码，Redis key = 67a981b9859e0437a50b03cfa761971f7znp，checkCode = 7zNP</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,113</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,148</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,155</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,165</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)12毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,165</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,171</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,172</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,172</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,172</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,172</td>
<td class="Message">3 获取用户信息耗时 (字典数据)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:17,172</td>
<td class="Message">end 获取用户信息耗时 20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:18,079</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:18,080</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:18,092</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:18,206</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:18,211</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:32:18,220</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:39,940</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:39,941</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:39,953</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:40,013</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:40,020</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:40,026</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:42,635</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:42,636</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:42,651</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:42,773</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:42,779</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:42,788</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:52,515</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:52,725</td>
<td class="Message">获取验证码，Redis key = 67af11e056465f70854de0598f054a04x3px，checkCode = x3pX</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:39:54,527</td>
<td class="Message">获取验证码，Redis key = 5007d799961300adf25d9ef83012545dtpwa，checkCode = tpWa</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,916</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,960</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,969</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,981</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)18毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,981</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,989</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,989</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,989</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,989</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,989</td>
<td class="Message">3 获取用户信息耗时 (字典数据)26毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:02,989</td>
<td class="Message">end 获取用户信息耗时 26毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:04,007</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:04,008</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:04,028</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:04,084</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:04,090</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:04,096</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:34,005</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:34,014</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:34,023</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:34,095</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:34,103</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:40:34,118</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)25毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:07,080</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:07,084</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:07,096</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:07,171</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:07,177</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:07,182</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:18,276</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:18,442</td>
<td class="Message">获取验证码，Redis key = ba8148abd1baefdf37fce4c86dfc5a73rdga，checkCode = rDGA</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:20,876</td>
<td class="Message">获取验证码，Redis key = 671f855d68afc8a5d1d89db435bc6388djc4，checkCode = djC4</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:23,142</td>
<td class="Message">获取验证码，Redis key = 61e06e14da70b313b3eebb3ab6569165t7mm，checkCode = T7mm</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:28,978</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,040</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,050</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,064</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,065</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,071</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,071</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,071</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,072</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,072</td>
<td class="Message">3 获取用户信息耗时 (字典数据)27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,072</td>
<td class="Message">end 获取用户信息耗时 27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,967</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,968</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:29,978</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:30,025</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:30,031</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:42:30,037</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:40,832</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:40,844</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:40,865</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:40,933</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:40,947</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:40,956</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)24毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:53,682</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:53,683</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:53,696</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:53,756</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:53,762</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:43:53,767</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:44:08,491</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:44:08,493</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:44:08,516</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:44:08,566</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:44:08,572</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:44:08,577</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:23,884</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:23,910</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)26毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:23,921</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)37毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:24,164</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:24,164</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:24,172</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:31,887</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:32,206</td>
<td class="Message">获取验证码，Redis key = 096bf7e5fe9f321663624ba738580263d3nq，checkCode = D3nQ</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:33,723</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 18:46:33,751</td>
<td class="Message">UT010029: Stream is closed</td>
<td class="MethodOfCaller">responseError</td>
<td class="FileOfCaller">JwtUtil.java</td>
<td class="LineOfCaller">69</td>
</tr>
<tr><td class="Exception" colspan="6">java.io.IOException: UT010029: Stream is closed
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:139)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.system.util.JwtUtil.responseError(JwtUtil.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.isAccessAllowed(JwtFilter.java:59)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:225)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:199)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.preHandle(JwtFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:34,031</td>
<td class="Message">获取验证码，Redis key = dd8830f16a2f0bcdcacba1c18276aebdal4d，checkCode = aL4d</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,741</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,766</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,785</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)24毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,786</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,794</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,794</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,794</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,794</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,794</td>
<td class="Message">3 获取用户信息耗时 (字典数据)33毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:39,795</td>
<td class="Message">end 获取用户信息耗时 34毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:40,872</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:40,872</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:40,888</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:40,932</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:40,938</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:40,945</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:50,539</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:46:50,705</td>
<td class="Message">获取验证码，Redis key = 2a71bc343c34dbe6a296491486d92865tp7g，checkCode = tp7g</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:00,060</td>
<td class="Message">获取验证码，Redis key = e1c7ae603c5c0900c952193c870e9e6a06yk，checkCode = 06Yk</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,618</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,660</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,667</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）4毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,679</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)16毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,679</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,685</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,686</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,686</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,686</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,686</td>
<td class="Message">3 获取用户信息耗时 (字典数据)23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:08,686</td>
<td class="Message">end 获取用户信息耗时 23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:09,726</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:09,729</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:09,759</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:09,805</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:09,811</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:47:09,818</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:48:00,350</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:48:00,430</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)82毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:48:00,435</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)87毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:48:00,516</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:48:00,518</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:48:00,551</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:13,960</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:13,962</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:13,994</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:14,065</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:14,071</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:14,077</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:20,840</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:21,044</td>
<td class="Message">获取验证码，Redis key = 9649f68b00ed1d87cca8a473289bbbe9pfyd，checkCode = pFYD</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:23,180</td>
<td class="Message">获取验证码，Redis key = 3e2e2db3b9645c63b8a9d0376201fe47mjbw，checkCode = mJbw</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,654</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,697</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,704</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）4毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,717</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)17毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,718</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,726</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,726</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,727</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：9毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,727</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,727</td>
<td class="Message">3 获取用户信息耗时 (字典数据)27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:28,727</td>
<td class="Message">end 获取用户信息耗时 27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:29,715</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:29,715</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:29,752</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:29,781</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:29,791</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:29,798</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:33,611</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:33,620</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)9毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:51:33,628</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:57:51,194</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:57:51,206</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:57:51,220</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:57:51,277</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:57:51,285</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:57:51,291</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:58:47,329</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:58:47,543</td>
<td class="Message">获取验证码，Redis key = fe0e16874ed31b3642c2a96565d325265l3m，checkCode = 5L3M</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:58:55,741</td>
<td class="Message">获取验证码，Redis key = a75a5d3f933ba5485a197c00bf853b89erp1，checkCode = ErP1</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,536</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,583</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,589</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,605</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,605</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,612</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,612</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,613</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,613</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,613</td>
<td class="Message">3 获取用户信息耗时 (字典数据)27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:02,613</td>
<td class="Message">end 获取用户信息耗时 27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:03,729</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:03,732</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:03,756</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:03,795</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:03,802</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:03,808</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:28,165</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:28,267</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)104毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:28,272</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)109毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:28,382</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:28,383</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:28,416</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:49,413</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:49,688</td>
<td class="Message">获取验证码，Redis key = 7e958be5727b06b39ef532cd28943875jgtv，checkCode = jGtv</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:51,654</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-08-16 18:59:51,673</td>
<td class="Message">UT010029: Stream is closed</td>
<td class="MethodOfCaller">responseError</td>
<td class="FileOfCaller">JwtUtil.java</td>
<td class="LineOfCaller">69</td>
</tr>
<tr><td class="Exception" colspan="6">java.io.IOException: UT010029: Stream is closed
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:139)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.common.system.util.JwtUtil.responseError(JwtUtil.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.isAccessAllowed(JwtFilter.java:59)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:163)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:225)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:199)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.config.shiro.filters.JwtFilter.preHandle(JwtFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:176)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.monitor.actuator.undertow.CustomUndertowMetricsHandler.lambda$4(CustomUndertowMetricsHandler.java:87)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.base/java.lang.Thread.run(Thread.java:840)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:51,908</td>
<td class="Message">获取验证码，Redis key = bb3494c3d30cafcf28123c380d76a4c1yqxs，checkCode = YQxS</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 18:59:55,484</td>
<td class="Message">获取验证码，Redis key = 5cbf018903d4ecfd5b26f0bfd5946e7dqjej，checkCode = qjej</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,476</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,514</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,539</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,540</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,551</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：11毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,552</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：12毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,552</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：12毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,552</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,552</td>
<td class="Message">3 获取用户信息耗时 (字典数据)44毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:08,552</td>
<td class="Message">end 获取用户信息耗时 44毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:09,908</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:09,908</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:09,926</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:09,979</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:09,987</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:00:09,992</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:14,772</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:14,776</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:14,789</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:14,867</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:14,880</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:14,894</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)27毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:18,165</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:18,165</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:18,203</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:18,242</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:18,249</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:18,257</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:27,195</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:27,201</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:27,206</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:32,754</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:32,762</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:03:32,768</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:10,210</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:10,225</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:10,344</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:10,390</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:10,401</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:10,410</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)20毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:20,705</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:20,856</td>
<td class="Message">获取验证码，Redis key = 3b3d6e1572342b77fa1af717b38cddde1nsp，checkCode = 1nsp</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:28,493</td>
<td class="Message">获取验证码，Redis key = 5e81a6de63ff655dcaf5acd8c5a0e8edalrk，checkCode = aLRk</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,629</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,675</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,683</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,698</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,698</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,704</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,704</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,704</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,704</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,705</td>
<td class="Message">3 获取用户信息耗时 (字典数据)27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:33,705</td>
<td class="Message">end 获取用户信息耗时 27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:34,778</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:34,779</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:34,792</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:34,839</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:34,844</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:34,850</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:52,261</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:52,263</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:52,272</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:52,444</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:52,485</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)42毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:52,499</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)56毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:55,253</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:55,255</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:55,274</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:55,309</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:55,314</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:04:55,321</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:05:09,157</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:05:09,305</td>
<td class="Message">获取验证码，Redis key = 0bb992732f01e5f220d847a46e0e485cdbdm，checkCode = dBdm</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:05:33,788</td>
<td class="Message">获取验证码，Redis key = bb44fd40f0c7283748ab45684002803cggu6，checkCode = GGu6</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:15,154</td>
<td class="Message">获取验证码，Redis key = 61f745ee8ad43088ff2fdda613e2cadf5wzt，checkCode = 5WzT</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,428</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,486</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,498</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,515</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,516</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,521</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,522</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,523</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,523</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,523</td>
<td class="Message">3 获取用户信息耗时 (字典数据)31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:22,523</td>
<td class="Message">end 获取用户信息耗时 31毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,549</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,549</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,550</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,550</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,683</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,684</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,692</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,743</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,750</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:23,757</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:29,528</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:29,536</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:29,542</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:34,082</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:34,088</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:34,093</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,736</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,737</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,738</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,739</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,739</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,819</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)83毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,826</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)90毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,952</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,953</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:06:45,966</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,549</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,553</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,554</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,555</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,695</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,695</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,711</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,758</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,770</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:00,779</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)21毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,550</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,550</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,551</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,551</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,551</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,556</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,565</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,691</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,691</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:07:29,703</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,199</td>
<td class="Message">Sign Interceptor request URI = /jeecg-boot/sys/dict/getDictItems/cgform_table_type</td>
<td class="MethodOfCaller">preHandle</td>
<td class="FileOfCaller">SignAuthInterceptor.java</td>
<td class="LineOfCaller">36</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,202</td>
<td class="Message">Param paramsJsonStr : {}</td>
<td class="MethodOfCaller">getParamsSign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">50</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,202</td>
<td class="Message">Param Sign : E19D6243CB1945AB4F7202A1B00F77D5</td>
<td class="MethodOfCaller">verifySign</td>
<td class="FileOfCaller">SignUtil.java</td>
<td class="LineOfCaller">37</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,203</td>
<td class="Message"> dictCode : cgform_table_type</td>
<td class="MethodOfCaller">getDictItems</td>
<td class="FileOfCaller">SysDictController.java</td>
<td class="LineOfCaller">185</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,310</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,310</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,326</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,514</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,536</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)22毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:52,542</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)28毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:58,603</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:08:58,757</td>
<td class="Message">获取验证码，Redis key = 65d9dede58aeb3f9ba737e863e3d1e27gbyg，checkCode = GBYg</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:08,059</td>
<td class="Message">获取验证码，Redis key = f27b32ceab682eaea0dc67278503de0agya6，checkCode = GYa6</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,133</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,170</td>
<td class="Message">加密操作，Aspect程序耗时：1ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,183</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,196</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,196</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,203</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,203</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,203</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：7毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,203</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,203</td>
<td class="Message">3 获取用户信息耗时 (字典数据)26毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:14,203</td>
<td class="Message">end 获取用户信息耗时 26毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:15,190</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:15,191</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:15,214</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:15,342</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:15,347</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:15,353</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:33,330</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:33,339</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)9毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:33,344</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)14毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:37,995</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:38,004</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)9毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:38,011</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)16毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:41,919</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:41,920</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:41,934</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:41,979</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:41,986</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)7毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:41,994</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:56,703</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:09:56,846</td>
<td class="Message">获取验证码，Redis key = eb4eac0c7ff4991acf197f1f0f07a380ble1，checkCode = bLe1</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:04,664</td>
<td class="Message">获取验证码，Redis key = 6a3c67974869b048243a8c5d380eae38wg12，checkCode = Wg12</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,718</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,756</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,766</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）6毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,783</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)23毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,783</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,789</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,789</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,789</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,790</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,790</td>
<td class="Message">3 获取用户信息耗时 (字典数据)30毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:11,790</td>
<td class="Message">end 获取用户信息耗时 30毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:12,794</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:12,796</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:12,814</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:12,861</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:12,868</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:10:12,875</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:19,358</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:19,367</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:19,418</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:19,758</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:19,776</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:19,800</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)42毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:32,982</td>
<td class="Message">获取验证码，Redis key = fce146c4520d21704c968d41aa0a43e5dumj，checkCode = DUMJ</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,213</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,254</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,268</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,269</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,277</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,277</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,277</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：8毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,278</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,278</td>
<td class="Message">3 获取用户信息耗时 (字典数据)29毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:42,278</td>
<td class="Message">end 获取用户信息耗时 29毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:43,313</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:43,313</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:43,325</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:43,521</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:43,531</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:11:43,540</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:10,396</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:10,397</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:10,417</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:10,577</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:10,587</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)10毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:10,595</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)18毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:31,463</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:31,467</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:31,486</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:31,526</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:31,543</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)17毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:31,554</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)28毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:35,217</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:35,218</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:35,225</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:35,279</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:35,287</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)8毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:35,294</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)15毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:53,777</td>
<td class="Message">获取验证码，Redis key = 7e02c80a49805eeb1fdcced0c1dca866hhtw，checkCode = HHtW</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,662</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,688</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,697</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)12毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,698</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,704</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,704</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,704</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,704</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,704</td>
<td class="Message">3 获取用户信息耗时 (字典数据)19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:58,704</td>
<td class="Message">end 获取用户信息耗时 19毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:59,662</td>
<td class="Message"> path = /online/cgform/head/list</td>
<td class="MethodOfCaller">getOnlinePossiblePaths</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1805</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:59,663</td>
<td class="Message">获取的菜单地址= [/online/cgform/head/list]</td>
<td class="MethodOfCaller">queryPermissionDataRule</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">201</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:59,679</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:59,724</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:59,730</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)6毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:12:59,737</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:03,524</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:08,581</td>
<td class="Message">======获取全部菜单数据=====耗时:43毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,841</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,867</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,869</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,901</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,901</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,902</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,903</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,918</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_flow where status = &#39;enable&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,919</td>
<td class="Message">获取select sql信息 ：{airag_flow=SelectSqlInfo{fromTableName=&#39;airag_flow&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,920</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,921</td>
<td class="Message">checkWhiteList tableName: airag_flow</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,921</td>
<td class="Message">白名单校验：查询表&quot;airag_flow&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,921</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_flow&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,924</td>
<td class="Message">字典拼接的查询SQL：select name,id from airag_model where model_type = &#39;LLM&#39; </td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,925</td>
<td class="Message">获取select sql信息 ：{airag_model=SelectSqlInfo{fromTableName=&#39;airag_model&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[name, id], realSelectFields=[name, id], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,928</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,928</td>
<td class="Message">checkWhiteList tableName: airag_model</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,928</td>
<td class="Message">白名单校验：查询表&quot;airag_model&quot;，查询字段 [name, id] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:11,929</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;airag_model&#39;, alias=&#39;&#39;, fields=[name, id], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:35,584</td>
<td class="Message">获取验证码，Redis key = 13e73a0a51a4e60db3dcd9adbe2900fc6mpd，checkCode = 6MpD</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,844</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,880</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）5毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,895</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)20毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,896</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,901</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,902</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,902</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：6毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,902</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,902</td>
<td class="Message">3 获取用户信息耗时 (字典数据)27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:41,902</td>
<td class="Message">end 获取用户信息耗时 27毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:42,715</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:42,868</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:42,886</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)19毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:13:42,893</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)26毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:02,344</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:02,491</td>
<td class="Message">获取验证码，Redis key = 2477d0d4a42d958674ec31d688934581twng，checkCode = TwNg</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:10,259</td>
<td class="Message">获取验证码，Redis key = e3f4d426223b2aea8b1e221dabed18cf06nr，checkCode = 06NR</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,220</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,254</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,260</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）3毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,274</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)17毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,274</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,279</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,279</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,279</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：5毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,279</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,279</td>
<td class="Message">3 获取用户信息耗时 (字典数据)22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:17,279</td>
<td class="Message">end 获取用户信息耗时 22毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:18,095</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:18,107</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)12毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:15:18,120</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)25毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:16:13,089</td>
<td class="Message">======获取全部菜单数据=====耗时:26毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:16:22,012</td>
<td class="Message">======获取全部菜单数据=====耗时:12毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:27:20,793</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:27:20,805</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)13毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 19:27:20,812</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)20毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:09:24,639</td>
<td class="Message">======获取全部菜单数据=====耗时:14毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:09:32,778</td>
<td class="Message">======获取全部菜单数据=====耗时:12毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:09:54,538</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------useId： e9ca23d68d884d4ebb19d07889727dae,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSetById</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1139</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:09:54,576</td>
<td class="Message">-------通过数据库读取用户拥有的权限Perms------userId： e9ca23d68d884d4ebb19d07889727dae,Perms size: 174</td>
<td class="MethodOfCaller">getUserPermissionSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1170</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:09:54,577</td>
<td class="Message">===============Shiro权限认证成功==============</td>
<td class="MethodOfCaller">doGetAuthorizationInfo</td>
<td class="FileOfCaller">ShiroRealm.java</td>
<td class="LineOfCaller">86</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:09:54,698</td>
<td class="Message">======获取全部菜单数据=====耗时:10毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:01,379</td>
<td class="Message"> 用户名:  管理员,退出成功！ </td>
<td class="MethodOfCaller">logout</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">198</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:01,560</td>
<td class="Message">获取验证码，Redis key = 4caf9a727f44dcc6043b8ab62637daedhhxh，checkCode = hhxh</td>
<td class="MethodOfCaller">randomImage</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">554</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,789</td>
<td class="Message"> 登录接口用户的租户ID = 0</td>
<td class="MethodOfCaller">setLoginTenant</td>
<td class="FileOfCaller">SysUserServiceImpl.java</td>
<td class="LineOfCaller">982</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,855</td>
<td class="Message">加密操作，Aspect程序耗时：0ms</td>
<td class="MethodOfCaller">around</td>
<td class="FileOfCaller">SensitiveDataAspect.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,858</td>
<td class="Message">1 获取用户信息耗时（用户基础信息）1毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">150</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,866</td>
<td class="Message">2 获取用户信息耗时 (首页面配置)9毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,867</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">165</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,870</td>
<td class="Message">      &gt;&gt;&gt; 1 获取系统字典项耗时（SQL）：3毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">184</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,870</td>
<td class="Message">      &gt;&gt;&gt; 2 获取系统字典项耗时（Enum）：3毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">188</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,870</td>
<td class="Message">      &gt;&gt;&gt; end 获取系统字典库总耗时：3毫秒</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">190</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,871</td>
<td class="Message">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</td>
<td class="MethodOfCaller">queryAllDictItems</td>
<td class="FileOfCaller">SysDictServiceImpl.java</td>
<td class="LineOfCaller">191</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,871</td>
<td class="Message">3 获取用户信息耗时 (字典数据)14毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">169</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:07,871</td>
<td class="Message">end 获取用户信息耗时 14毫秒</td>
<td class="MethodOfCaller">getUserInfo</td>
<td class="FileOfCaller">LoginController.java</td>
<td class="LineOfCaller">174</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:09,016</td>
<td class="Message">======获取全部菜单数据=====耗时:28毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:09,053</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:09,059</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)5毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:09,064</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)11毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:16,687</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:34,646</td>
<td class="Message">======获取全部菜单数据=====耗时:11毫秒</td>
<td class="MethodOfCaller">list</td>
<td class="FileOfCaller">SysPermissionController.java</td>
<td class="LineOfCaller">114</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:49,906</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:10:55,493</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------username： admin,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1125</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:12,910</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:38,523</td>
<td class="Message">-------通过数据库读取用户拥有的角色Rules------useId： e9ca23d68d884d4ebb19d07889727dae,Roles size: 2</td>
<td class="MethodOfCaller">getUserRoleSetById</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1139</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:38,554</td>
<td class="Message">-------通过数据库读取用户拥有的权限Perms------userId： e9ca23d68d884d4ebb19d07889727dae,Perms size: 174</td>
<td class="MethodOfCaller">getUserPermissionSet</td>
<td class="FileOfCaller">SysBaseApiImpl.java</td>
<td class="LineOfCaller">1170</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:38,554</td>
<td class="Message">===============Shiro权限认证成功==============</td>
<td class="MethodOfCaller">doGetAuthorizationInfo</td>
<td class="FileOfCaller">ShiroRealm.java</td>
<td class="LineOfCaller">86</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:38,558</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="warn odd">
<td class="Level">WARN</td>
<td class="Date">2025-08-16 22:12:45,507</td>
<td class="Message">Reached the maximum number of URI tags for &#39;http.server.requests&#39;.</td>
<td class="MethodOfCaller">accept</td>
<td class="FileOfCaller">OnlyOnceLoggingDenyMeterFilter.java</td>
<td class="LineOfCaller">53</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:56,819</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:56,836</td>
<td class="Message">查询当前页：1</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysLogController.java</td>
<td class="LineOfCaller">74</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:56,836</td>
<td class="Message">查询当前页数量：10</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysLogController.java</td>
<td class="LineOfCaller">75</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:56,842</td>
<td class="Message">查询结果数量：10</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysLogController.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:12:56,842</td>
<td class="Message">数据总数：30</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysLogController.java</td>
<td class="LineOfCaller">77</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:13:07,400</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:13:07,412</td>
<td class="Message">查询当前页：1</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysDataLogController.java</td>
<td class="LineOfCaller">45</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:13:07,413</td>
<td class="Message">查询当前页数量：10</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysDataLogController.java</td>
<td class="LineOfCaller">46</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:13:07,414</td>
<td class="Message">查询结果数量：0</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysDataLogController.java</td>
<td class="LineOfCaller">47</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:13:07,414</td>
<td class="Message">数据总数：0</td>
<td class="MethodOfCaller">queryPageList</td>
<td class="FileOfCaller">SysDataLogController.java</td>
<td class="LineOfCaller">48</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:13:47,754</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,843</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,875</td>
<td class="Message">字典拼接的查询SQL：select realname,username from sys_user</td>
<td class="MethodOfCaller">isPassByDict</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">127</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,878</td>
<td class="Message">获取select sql信息 ：{sys_user=SelectSqlInfo{fromTableName=&#39;sys_user&#39;, fromSubSelect=null, aliasName=&#39;null&#39;, selectFields=[realname, username], realSelectFields=[realname, username], selectAll=false}} </td>
<td class="MethodOfCaller">isPassBySql</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">76</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,888</td>
<td class="Message">表字典白名单初始化完成：{sys_permission=id,name, sys_position=name,id, onl_drag_comp=id,comp_name, test_shoptype_tree=type_name,id, sys_dict=dict_code, airag_flow=name,id, oa_officialdoc_organcode=id,organ_name, demo=id,name, tj_user_report=name,username, sys_role=role_name,role_code, design_form=id,desform_name,desform_code, ces_shop_type=name,pid,id,has_child, sys_check_rule=rule_code, sys_depart=id,org_code,depart_name, sys_user=phone,work_no,id,email,realname,username, onl_cgreport_head=code, sys_data_source=code,name, wu_liao=wul_name,id, sys_sms_template=template_code, sys_category=id,name, onl_cgform_head=table_txt,table_name, oa_wps_file=id,name, sys_tenant=name,id, airag_model=name,id}</td>
<td class="MethodOfCaller">init</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">59</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,889</td>
<td class="Message">checkWhiteList tableName: sys_user</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">156</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,889</td>
<td class="Message">白名单校验：查询表&quot;sys_user&quot;，查询字段 [realname, username] 通过校验</td>
<td class="MethodOfCaller">checkWhiteList</td>
<td class="FileOfCaller">DictTableWhiteListHandlerImpl.java</td>
<td class="LineOfCaller">195</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:50:34,889</td>
<td class="Message">  获取sql信息 ：[QueryTable{name=&#39;sys_user&#39;, alias=&#39;&#39;, fields=[realname, username], all=false}] </td>
<td class="MethodOfCaller">isPass</td>
<td class="FileOfCaller">AbstractQueryBlackListHandler.java</td>
<td class="LineOfCaller">66</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:51:24,153</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:51:24,314</td>
<td class="Message">-----查询近两个月收到的未读通知-----，近2月的第一天：2025-07-01 00:00:00</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">388</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:51:24,344</td>
<td class="Message">begin 获取用户近2个月的系统公告 (通知)30毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">403</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 22:51:24,353</td>
<td class="Message">end 获取用户2个月的系统公告 (系统消息)39毫秒</td>
<td class="MethodOfCaller">listByUser</td>
<td class="FileOfCaller">SysAnnouncementController.java</td>
<td class="LineOfCaller">411</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 23:37:15,912</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-08-16 23:38:50,072</td>
<td class="Message">单字段排序规则&gt;&gt; column:createTime,排序方式:desc</td>
<td class="MethodOfCaller">doMultiFieldsOrder</td>
<td class="FileOfCaller">QueryGenerator.java</td>
<td class="LineOfCaller">263</td>
</tr>
